在caffe中卷积核是三维的还是二维的?

如果输入的图片是彩色的,那么caffe中做卷积时,卷积核时几维的呢?输出的特征图又是几维的呢?如果换成灰度图,又是什么情况呢?感谢您的回答!
已邀请:

ruirui_ICT - 听大大们说,要“左手代码,右手公式”,喵~

赞同来自: xinmiao 月光里的阳光ysu xjtuljy OutLaws deeepsea 搬砖工彭于晏哼 调参小白 ersanqiao OpenAI xmj9999 土拨鼠翻翻土 mabixxoo 深度学习思考者更多 »

刚开学比较无聊,我想借这个问题讲一下cnn的输入输出维度怎么算的。。
先说结论:一个卷积核是三维的(channel×height×width),每个卷积层有若干卷积核,一个卷积核输出的feature map是二维的,每层输出的feature map数量和卷积核数量相等。
 
以经典的AlexNet为例,先上图
1.JPG

输入图像是227×227×3(注1),conv1的卷积核参数是:
kernel_size: 11
stride: 4
num_output: 96
因此实际的卷积核维度是11×11×3,channel是输入的图像的第三维(如果是后面的卷积层,其卷积核的channel是与之做卷积的输入的feature map的数量),即3,做卷积的时候,是11×11×3的卷积核和输入图像里的11×11×3的块进行卷积,得到一个值,卷积的过程是在height和width上滑动,第三维上不滑动,因此得到的feature map是二维的,公式是
$$\text{FeaSize}=\lfloor\frac{\text{InputSize}-\text{KernelSize}}{\text{Stride}}\rfloor+1$$
(注意这里是下取整,pooling是上取整,二者是反着的)
因此conv1输出的feature map size为$$\lfloor\frac{227-11}{4}\rfloor+1=55$$
输出的feature map数量和卷积核数量相同,为96,因此conv1的输出是55×55×96
 
后面的层类似,只要注意卷积核的第三维是由输入的feature map的数量决定就可以了,这一点从图上也可以看出来。
 
最后祝大家春节快乐~
 
注1:论文里是224×224×3,caffe官网的例子里是227×227×3,这里以官网的例子为例。
 
(针对最近大大们头疼的侵权问题,在这里弱弱的加一句:本内容为本人原创,仅授权给CaffeCN社区(caffecn.cn)使用,如需转载须注明转载来源。(⊙v⊙))

zeakey - please visit my homepage: zhaok.xyz

赞同来自: 调参小白

一个卷积核是三维的,相当于神经网络中的一个神经元
 
一个卷积核的输出是二维的feature-map, 相当于一个神经元对输入作二维卷积
 
神经网络一个层的输入是三维, 由本层的多个 神经元/卷积核 产生的feature-map concat形成.

bonerkiller - buptldy.github.io

赞同来自: crystal

看你怎么理解了,可以理解为C_out*C_in个大小为[H,W]的二维滤波器,也可以理解为C_out个大小为[C_in,H,W]的三维滤波器,但一般都说是三维的。

llhlby

赞同来自:

caffe里做卷积是卷积核是2维了,具体细节可以参考http://115.29.54.164/?/question/46

qingsong99

赞同来自:

不管输入是灰度图还是彩色图,卷积核都是三维的

华灯初上照小川

赞同来自:

一楼的回答很详细,解答了我困惑很久的问题~谢谢

Goodwin

赞同来自:

caffe里面卷积核是三维的(channel,height,width)。彩色画像是RGB三通道,其对应的卷积核是3个通道;灰度图像是单通道,其对应的卷积核只有1个通道。

要回复问题请先登录注册