Closed ebattenberg closed 9 years ago
As for the differences between Pylearn2 and Blocks:
Model
class and its implementations such as MLP
and Layer
) which aim to avoid the need to directly interact with the Theano computation graph. Blocks on the other hand tries to be a toolkit that helps build and manage Theano graphs; it doesn't add another layer of abstraction. Some people will be familiar with this idea from the GroundHog framework. What we call "bricks" are sometimes referred to as "parametrized Theano ops", which simply means that you give a Theano variable as an input to a brick, and can expect a Theano variable output. The brick will initialize the needed parameters and give you easy access to them. This means you can mix bricks with Theano expresssions as you please, and after you've built your model, you can throw out all the bricks and treat your model as any other Theano computation graph.So in summary: Pylearn2 is a general machine learning library whereas Blocks tries to be a toolkit that helps you build Theano graphs. The main feature we are trying to implement that is lacking in Pylearn2 is support for complicated recurrent models.
Hello, I love it that this project is building higher level abstractions on top of Theano. That should be really useful. What I'm more interested in though is what Blocks provides (or aims to provide) that Pylearn2 doesn't. :)