-
Notifications
You must be signed in to change notification settings - Fork 18.6k
nd convolution and pooling revision #3515
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
base: master
Are you sure you want to change the base?
Conversation
This reverts commit c5c8e17a9a604941faad46710e28ab4c8aa5602d.
|
I am sorry that this only works with a gpu, and because of that the checks didn't pass without cuda. And I don't know how to bypass this |
include/caffe/blob.hpp
Outdated
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.
Is this a bug? The legacy shape accessors should not allow for 5D blobs. This change should not be made.
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.
it's because I want to use the xavier initializer, I'll change it
|
caffe/src/caffe/layers/cudnn_ndpooling_layer.cpp line 13 has a typo, const is written twice |
|
Thanks @ddetone , it has been fixed |
|
Is it possible to implement a ND deconvolutional layer using cudnn? |
|
Is there anyone can make sure that this PR works?I tried this Ndpooling and the master branch 3D convolutionLayer,but I have to reduce my learningrate to 1e-18 to avoid loss rising to Nan.Is this normal? |
|
@YOUNGING really? Please supply me with the sample proto and result |
|
@lfz When compiled with "USE_CUDNN" option , caffe will use CUDNN engine,right? neural layer like ReLU can use CAFFE engine by setting engine to CAFFE,but SoftmaxWithLoss layer don't have an engine option,so what should I do to make things right? BTW,reshaping the input of loss to 2D may solve the problem,but I want to find a more efficient way.Any ideas? Thanks. |
| "Dimensions of filters and pad don't match !"; | ||
| CHECK_EQ(nbDims, stride.size()+2) << | ||
| "Dimensions of filters and stride don't match !"; | ||
| std::vector<int> upscale(pad.size(), 1); |
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.
This function takes an additional input arg in CUDNN v4 (or possibly earlier version too)
Something like following will take care of this:
#if CUDNN_VERSION >= 4000
CUDNN_CHECK(cudnnSetConvolutionNdDescriptor(*conv,
pad.size(), pad.data(), stride.data(), upscale.data(),
CUDNN_CROSS_CORRELATION, cudnn_type));
#else
CUDNN_CHECK(cudnnSetConvolutionNdDescriptor(*conv,
pad.size(), pad.data(), stride.data(), upscale.data(),
CUDNN_CROSS_CORRELATION));
#endif
|
Any updates? FYI, #3983 supports cuDNN v5. |

This is a revision of #2824 , since it is already deprecated.
I fixed some bugs mentioned in the discussion, now it supports cudnn v3
an example of using: