Hello,
I want to use 3D convolution and 3D pooling in Caffe.
I tried 3D convolution referring to
#2049, and got an error
F1028 11:17:42.342301 8639 blob.hpp:140] Check failed: num_axes() <= 4 (5 vs. 4) Cannot use legacy accessors on Blobs with > 4 axes.
As @Tgaaly
said, I uncomment a sentence "CHECK_LE(num_axes(), 4) << "Cannot use legacy accessors on Blobs with > 4 axes.";" (caffe/include/caffe/blob.hpp), and the program
seems to run.
The first question is will things go right?
Then, I tried 3D pooling, but got an error
F1028 12:09:38.425106 10604 pooling_layer.cpp:81] Check failed: 4 == bottom[0]->num_axes() (4 vs. 5) Input must have 4 axes, corresponding to (num, channels, height, width)
The second question is does Caffe support N-D pooling?It is shown below the part of the execution result. I use the HDF5 format file as 3D input.----------
I1028 12:09:38.418767 10604 layer_factory.hpp:76] Creating layer hoge
I1028 12:09:38.418849 10604 net.cpp:106] Creating Layer hoge
I1028 12:09:38.418920 10604 net.cpp:411] hoge -> data
I1028 12:09:38.418995 10604 net.cpp:411] hoge -> label
I1028 12:09:38.419075 10604 hdf5_data_layer.cpp:79] Loading list of HDF5 filenames from: sample_data_list.txt
I1028 12:09:38.419239 10604 hdf5_data_layer.cpp:93] Number of HDF5 files: 1
I1028 12:09:38.420356 10604 hdf5.cpp:32] Datatype class: H5T_FLOAT
I1028 12:09:38.420685 10604 net.cpp:150] Setting up hoge
I1028 12:09:38.420794 10604 net.cpp:157] Top shape: 1 1 3 3 3 (27)
I1028 12:09:38.420886 10604 net.cpp:157] Top shape: 1 (1)
I1028 12:09:38.420989 10604 net.cpp:165] Memory required for data: 112
I1028 12:09:38.421082 10604 layer_factory.hpp:76] Creating layer conv1
I1028 12:09:38.421180 10604 net.cpp:106] Creating Layer conv1
I1028 12:09:38.421272 10604 net.cpp:454] conv1 <- data
I1028 12:09:38.421367 10604 net.cpp:411] conv1 -> conv1
I1028 12:09:38.421893 10604 net.cpp:150] Setting up conv1
I1028 12:09:38.421996 10604 net.cpp:157] Top shape: 1 6 2 2 2 (48)
I1028 12:09:38.422081 10604 net.cpp:165] Memory required for data: 304
I1028 12:09:38.422185 10604 layer_factory.hpp:76] Creating layer sigmoid1
I1028 12:09:38.422282 10604 net.cpp:106] Creating Layer sigmoid1
I1028 12:09:38.422370 10604 net.cpp:454] sigmoid1 <- conv1
I1028 12:09:38.422473 10604 net.cpp:411] sigmoid1 -> sigmoid1
I1028 12:09:38.422577 10604 net.cpp:150] Setting up sigmoid1
I1028 12:09:38.422669 10604 net.cpp:157] Top shape: 1 6 2 2 2 (48)
I1028 12:09:38.422752 10604 net.cpp:165] Memory required for data: 496
I1028 12:09:38.422837 10604 layer_factory.hpp:76] Creating layer pool1
I1028 12:09:38.425029 10604 net.cpp:106] Creating Layer pool1
I1028 12:09:38.425053 10604 net.cpp:454] pool1 <- sigmoid1
I1028 12:09:38.425071 10604 net.cpp:411] pool1 -> pool1
F1028 12:09:38.425106 10604 pooling_layer.cpp:81] Check failed: 4 == bottom[0]->num_axes() (4 vs. 5) Input must have 4 axes, corresponding to (num, channels, height, width)
----------
The
attached file is a data set that I use.
Thank you for your kind cooperation.