cuda-convnet based convolution and max-pooling layers + utilities. The layers can be used as drop-in replacements for the default Conv2DLayer and MaxPool2DLayer. This means that they shuffle the inputs from bc01 to c01b and the outputs from c01b to bc01 as needed. This behavior can be turned off with the 'dimshuffle' keyword argument. If it is turned off, the user is responsible for appropriately shuffling the layer input and output. nntools.layers.cuda_convnet.bc01_to_c01b and .c01b_to_bc01 are provided for this purpose.
defer pylearn2 imports to the classes that need them, so that nntools.layers.cuda_convnet can always be imported, even if pylearn2 is not available.
Merge pull request #39 from benanne/cuda_convnet

cuda-convnet based convolution and max-pooling layers + utilities.