马春杰杰博客
致力于深度学习经验分享!

[mcj]CNN中卷积核的卷积方式详解|CNN中卷积核是如何进行卷积的?

开局先祭出一张大神图:

比如我们有一张5*5*3的图作为输入,卷积核的尺寸为3*3,则卷积核的输入深度为3,这里的3对应着输入的3通道,卷积核的数量为2,则卷积核的参数应为:(3*3*3)*2。

卷积过程为,首先因为输入图像有3层,所以卷积核也有3层,这三层卷积核分别对应输入图像的每一层,然后卷的时候这三层同时卷积,卷完之后将得到的三层feature map直接相加为一层,这就是一个卷积核所做的事情。由于我们卷积核的数量为2,所以会再次进行这个操作,又得到一层,这样经过两个卷积核卷积之后,会得到两个feature map图,即输入5*5*3,stride=2,输出为3*3*2,不过一般我们会选择卷积的数量为2^n个,比如64、128个,如果是这样的话,最后会得到我们常见的3*3*64/128了。

更直观一点的图:

关于卷积层尺寸的计算原理:以下转自:知乎

  • 输入矩阵格式:四个维度,依次为:样本数、图像高度、图像宽度、图像通道数
  • 输出矩阵格式:与输出矩阵的维度顺序和含义相同,但是后三个维度(图像高度、图像宽度、图像通道数)的尺寸发生变化。
  • 权重矩阵(卷积核)格式:同样是四个维度,但维度的含义与上面两者都不同,为:卷积核高度、卷积核宽度、输入通道数、输出通道数(卷积核个数)
  • 输入矩阵、权重矩阵、输出矩阵这三者之间的相互决定关系
    • 卷积核的输入通道数(in depth)由输入矩阵的通道数所决定。(红色标注)
    • 输出矩阵的通道数(out depth)由卷积核的输出通道数所决定。(绿色标注)
    • 输出矩阵的高度和宽度(height, width)这两个维度的尺寸由输入矩阵、卷积核、扫描方式所共同决定。计算公式如下。(蓝色标注)
 \begin{cases} height_{out} &= (height_{in} - height_{kernel} + 2 * padding) ~ / ~ stride + 1\\[2ex] width_{out} &= (width_{in} - width_{kernel} + 2 * padding) ~ / ~ stride + 1 \end{cases}
赞(363) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《[mcj]CNN中卷积核的卷积方式详解|CNN中卷积核是如何进行卷积的?》
文章链接:https://www.machunjie.com/deeplearning/119.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

:smile: :sad: :arrow: :cool: :confused: :cry: :eek: :evil: :exclaim: :idea: :lol: :mad: :mrgreen: :neutral: :question: :razz: :redface: :rolleyes: :surprised: :wink: :biggrin: :twisted: