Search code examples
pythonmachine-learningcomputer-visiontheanoconvolution

Advice using the theano implementation of Conv3D


I am trying to run a 3D convolutional neural network using theano, however I am not completely sure of the usage of the function theano.tensor.nnet.Conv3d.

I am used to using lasagne, however due to not having access to a GPU at this time I am unable to use the lasagne.layers.dnn.Conv3DDNNLayerfunction.

Is anyone able to advise me in terms of inputs and outputs what I need to do to be able to use the theano function? I have data in the form N x 9 x 9 x 9 with 1 channel, and have initialised the theano tensors. I have also created an input layer with lasagne like so:

input = lasagne.layers.InputLayer((None, 1, 9, 9, 9), input_var=input_var)

Any advice is very welcome! Thanks.


Solution

  • There is currently no 3D conv support in Lasagne other than cuDNN. However I have fork of lasagne that implements it: https://github.com/gyglim/Lasagne (Conv3DLayer)

    Its outputs are identical with the ones from Conv3DDNNLayer.

    There is also discussion about adding it to the core lasagne (see https://github.com/Lasagne/Lasagne/issues/27), but it hasn't happend yet.

    Hope this helps.

    Cheers, Michael