Closed LinuxIsCool closed 6 years ago
Shouldn't the convolutional filters be 3 dimensional?
It always is 3-dimensional if you count the filter number in.
with additional depth of 2
The depth is actually the filter number.
I took a screenshot from cs231n, maybe this will help a bit:
edit:
However I think there is a discrepancy between the code and paper on how many (version upgrade)feature_maps
does the first ConvLayer
produces? (In paper is 2 but in code is 3) @ZhengyaoJiang
Shouldn't the convolutional filters be 3 dimensional? I mean, in the original convolution how do we go from 3 feature maps to 2 feature maps. I believe this would make sense if the filter was of dimension 2x1x3 (same as described but with additional depth of 2).
Yes, it is actually 3 dimensional. While I think it's a convention that the one of the dimension is the same as the number of input channels(features) and can be omitted when it comes to conv2d. If we are using conv3d, then it is necessary to specify another dimension. You can refer to tensorflow.layers for example: https://www.tensorflow.org/api_docs/python/tf/layers/conv2d
However I think there is a discrepancy between the code and paper on how many feature_maps does the first ConvLayer produces?
Number of feature maps is equal to the number of filters.
Thank you, this clears things up. From my understanding it appears there is still a discrepancy from the paper in {"filter_shape":[1,2]}. The paper implies it should be {"filter_shape":[1,3]}, doesn't it?
You can freely play around with the filter size in the first ConvLayer 2, 3 or 5 seem to be values giving reasonable results.
From my understanding it appears there is still a discrepancy from the paper in {"filter_shape":[1,2]}. The paper implies it should be {"filter_shape":[1,3]}, doesn't it?
Yes, as we mentioned in README, the hyper-parameters are different as that listed in the article. The new hyper-parameters are tuned by an automatic parameters search algorithm, which saves much training time and preserves(or improve in some time span) final performance.
Thank you for the information @ZhengyaoJiang. It is a great paper, and well written code, I really appreciate it. I am a CS master's student at Simon Fraser University, I am basing my current projects off of this paper.
@LinuxIsCool
Thanks for your compliment. Hope your project goes well.
Figure 2 in Paper (Attached image): Shouldn't the convolutional filters be 3 dimensional? I mean, in the original convolution how do we go from 3 feature maps to 2 feature maps. I believe this would make sense if the filter was of dimension 2x1x3 (same as described but with additional depth of 2). And then the second convolution would be 2x48 to get the 20 11x1 feature maps.
net_config.json: In ConvLayer, I don't understand how {"filter_shape":[1,2],"filter_number":3} corresponds to the filters outlined in the paper as described in my above question. (Excuse my ignorance of tflearn, but the params to conv2d() are not well explained in the documentation)