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

[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了。

更直观一点的图:

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

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

  • 输入矩阵格式:四个维度,依次为:样本数、图像高度、图像宽度、图像通道数
  • 输出矩阵格式:与输出矩阵的维度顺序和含义相同,但是后三个维度(图像高度、图像宽度、图像通道数)的尺寸发生变化。
  • 权重矩阵(卷积核)格式:同样是四个维度,但维度的含义与上面两者都不同,为:卷积核高度、卷积核宽度、输入通道数、输出通道数(卷积核个数)
  • 输入矩阵、权重矩阵、输出矩阵这三者之间的相互决定关系
    • 卷积核的输入通道数(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}

本文最后更新于2022年11月7日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

如果你对这篇文章有什么疑问或建议,欢迎下面留言提出,我看到会立刻回复!

打赏
未经允许不得转载:马春杰杰 » [mcj]CNN中卷积核的卷积方式详解|CNN中卷积核是如何进行卷积的?
超级便宜的原生ChatGPT4.0

留个评论吧~ 抢沙发 评论前登陆可免验证码!

私密评论
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址(选填,便于回访^_^)

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

支付宝扫一扫打赏

微信扫一扫打赏

登录

忘记密码 ?

切换登录

注册