I use Theano 0.7 , nolearn 0.6adev and lasagne 0.2.dev1 to train the neural network on the GPU (on IPython 3.2.1 laptop). However, due to the first level ( 'reduc' ), the following network does not start training, aven after waiting several hours:
import theano from lasagne import layers from lasagne.updates import nesterov_momentum from nolearn.lasagne import NeuralNet from nolearn.lasagne import BatchIterator from lasagne import nonlinearities from lasagne import init import numpy as np testNet = NeuralNet( layers=[(layers.InputLayer, {"name": 'input', 'shape': (None, 12, 1000, )}), (layers.Conv1DLayer, {"name": 'reduc', 'filter_size': 1, 'num_filters': 4, "nonlinearity":nonlinearities.linear,}), (layers.Conv1DLayer, {"name": 'conv1', 'filter_size': 25, 'num_filters': 100, 'pad': 'same', }), (layers.MaxPool1DLayer, {'name': 'pool1', 'pool_size': 5, 'stride': 3}), (layers.Conv1DLayer, {"name": 'conv2', 'filter_size': 15, 'num_filters': 100, 'pad': 'same', 'nonlinearity': nonlinearities.LeakyRectify(0.2)}), (layers.MaxPool1DLayer, {'name': 'pool2', 'pool_size': 5, 'stride': 2}), (layers.Conv1DLayer, {"name": 'conv3', 'filter_size': 9, 'num_filters': 100, 'pad': 'same', 'nonlinearity': nonlinearities.LeakyRectify(0.2)}), (layers.MaxPool1DLayer, {'name': 'pool3', 'pool_size': 2}), (layers.Conv1DLayer, {"name": 'conv4', 'filter_size': 5, 'num_filters': 20, 'pad': 'same', }), (layers.Conv1DLayer, {"name": 'conv5', 'filter_size': 3, 'num_filters': 20, 'pad': 'same',}), (layers.DenseLayer, {"name": 'hidden1', 'num_units': 10, 'nonlinearity': nonlinearities.rectify}), (layers.DenseLayer, {"name": 'output', 'nonlinearity': nonlinearities.sigmoid, 'num_units': 5}) ],
If I comment on the first level, the training will begin in a few seconds. Training more complex networks is also not a problem. Any idea on what is causing the problem?
Edit : oddly enough, if I remove conv4 and conv5 , training will also start in a reasonable amount of time.
Edit2 : what else is strange, if I changed the size of the filters to 10 in the reduc layer, then training will start in a reasonable amount of time. If after that I stopped the cell, change this value to 1 and repeat the cell operation, learning will be great ...
Finally, I started using a different framework, but if someone is interested, here is the link to the stream , I started with the lasagne user group.