Skip to content

Commit a9a8b60

Browse files
authored
Create RGB图像在CNN中如何进行convolution.md
1 parent e1c0f8e commit a9a8b60

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#RGB图像在CNN中如何进行convolution?
2+
3+
4+
5+
比如一副RGB图像,通过某一convolution layer,该layer共有96个3x3 filter,那请问我是把RGB每个channel 都和这96个filter 分别卷积,然后把RGB三个channel的结果(共96 x 3个结果)三三相加得到96个结果吗?
6+
7+
其实应该是96个三维的3*3*3的filter和H*W*3的图像的三维卷积。每个卷积的结果是一个H*W的二维的feature map,如果不做padding则长宽各减2。把这96个二维的feature map拼起来,就得到了这个卷积层的输出。
8+
一般文献里描述filter size(比如你这里的3*3)的大小的时候,用的都是二维的大小,但其实真正在网络里做卷积的filter是三维的,因为第三个维度一般都等于输入层的第三个维度,所以就省略了。并不是像你说的那样是二维的filter。顺带一说,正是由于这样的特性,再加上filter一般都是正方形,因此一个filter在给定其输入的情况下,可以完全由正方形的变长描述,而这一性质在程序实现的时候也十分有用,cudaconvnet第一版的说明文档里对此也有提及。
9+
你所说的用一个3*3的filter对RGB三个通道分别卷积再相加,等效为一个3*3*3的filter的卷积,该filter每一个二维slice是相同的,而一般来说三个slice应该不同。

0 commit comments

Comments
 (0)