模型由卷积替换全连接的原因

卷积和全连接
卷积层的特点:稀疏连接,权值共享
全连接层的特点:每个神经元都和上一层的所有神经元相连接

两者的共同点:都是由上一层的输出与参数矩阵相乘从而得到下一层的输入

所以我们得以得到结论,全连接层和卷积层实际上是可以相互转换的。

举个例子:
最后一个卷积层的输出为 7*7*512,即每个 feature map 的大小为 7*7,共有 512 个 feature map,然后通过一个全连接层得到了 1*1*4096 的输出,如下图所示:


全连接到卷积
将全连接层转换为卷积层的关键就在卷积核参数的设置上,仍然用上面的例子:

设置卷积核大小为 7*7,通道数(厚度)为 512;[ 说白了其实就是和上一层的 feature map 尺寸一模一样 ]
设置 4096 组卷积核;

当这组卷积核作用于输入的 feature map 上时,就能得到一个 1*1*4096 的输出。

由于卷积核大小和输入的 feaure map 一模一样,就保证了转换后的卷积层的运算结果和之前的全连接层是一样的。

探究原因
为什么要将全连接层变为卷积层?

对于传统的 CNN(即包含全连接层),一个确定的网络其输入图像的大小是固定的,比如 CaffeNet 的输入须是 227*227,那么对于更大的图像,在检测时就需要裁剪出很多 227*227 的小图像分别送入 CNN 网络中,使得检测任务十分耗时。

而网络需要输入固定大小图像的主要原因就是有全连接层,当把全连接层替换成了卷积层后,就可以不限制输入图像的大小,一次性输入网络即可获得一张图片所有位置的检测目标概率,形成一幅 heatmap。

固定大小是说送入网络训练的每一个数据大小需要一样,可以全都是 227*227,也可以全都是 224*224,只要统一就行。
这样要求的原因是全连接层与前一层连接时,参数数量需要预先设定好。不同于卷积操作,卷积核的参数数量就是卷积核大小,它与前一层的 feature map 多大没有关系,但是全连接层的参数是随着前一层 feature map 的大小变化而变化的,当输入图像大小不同,全连接层之前得到的 feature map 大小也不一样,那么全连接层的参数数量就不能确定,所以必须固定输入图像的大小。
————————————————
版权声明:本文为CSDN博主「yaoyz105」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31347869/article/details/89484343

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值