-
Notifications
You must be signed in to change notification settings - Fork 19.7k
Convolutional layers for 3D #1623
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Add 3D Convolutional layers(Convolution3D, MaxPooling3D, AveragePooli…
…ng3D, UpSampling3D and ZeroPadding3D, working with theano backend) --------------------------------------- Squashed from the following commits add Convolution3D and MaxPooling3D layers fix 5D tensor in theano, add examples update conv3d, pool3d, add resize_volumes and spatial_3d_padding update Convolution3D, MaxPooling3D and AveragePooling3D, add UpSampling3D and ZeroPadding3D add test functions for Convolution3D, MaxPooling3D, AveragePooling3D, ZeroPadding3D and UpSampling3D small fix by changing pad_z to pad_t update comment skip some tests for tenforflow, @pytest.mark.skipif(K._BACKEND != theano, reason="Requires Theano backend") use autopep8 to fix the code to match pep8 coding style small fix (caused by autopep8) small fix (caused by autopep8) small fix (caused by autopep8) fixed the document string for all newly added layers remove the example and the dataset for 3d add error messge for tensorflow backend support stride in pool3d Rename "params" to "trainable_weights" change notations and docstrings for 3D layers fix pep8 error change variable name in test code small fix for pep8 add error message and docstring for strides in conv3d fix test error caused by wrong strides in conv3d support strides in conv3d by slicing the output add if statement for stride (1,1,1) fix get_config according to mdering, and other small fix fix model_from_json issue by passing a 3d border_mode fix according to jruales' review change docstring in Convolution3D delete docstring about TensorFlow change docstring in Convolution3D and theano_backend --------------------------------------- Author: Wei OUYANG <[email protected]>
- Loading branch information
commit 3ecf201aeaf97c90fd8ba02a61c4a766b4b0cfb9
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
conv3d2dthat is being used in this function usestensor.nnet.conv2dfor the convolutions. This page mentions thatnnet.conv2duses cuDNN by default if available, so I think that this function will indeed take advantage of cuDNN 2d convolution operation if available.This makes me wonder why the conv2d function in this same file uses
dnn.dnn_convinstead oftensor.nnet.conv2dwhen cuDNN is detected, instead of simply usingnnet.conv2d.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is because nnet.conv2d is newly introduced by theano.
In conv2d of theano_backend.py, it still using nnet.conv.conv2d, which is the old interface.
I think you are right, use nnet.conv2d should be better, maybe conv2d in theano_backend.py should be updated, but that should be done in another PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
conv3d2d does use the new version
nnet.conv2dso it should be fine https://github.com/Theano/Theano/blob/master/theano/tensor/nnet/conv3d2d.py#L244There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you are talking about the conv2d in theano_backend.py used by
Convolution2D, when I say it should be updated is because it's using an
outdated interface, it's not nnet.conv2d.
On Fri, Feb 19, 2016 at 03:47 Joaquín Ruales [email protected]
wrote:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Understood.