VGG16全卷积网络 以VGG代码为例

全卷积网络 以VGG代码为例

发展历史

在这里插入图片描述

VGG

VGG之所以经典,是因为VGG第一次将深度学习做得非常“深”,达到了16-19层。同时,它用了非常“小”的卷积核(3X3)。
VGG与AlexNet差不多,不同之处就在于网络层数变深了。

下图VGG对原始VGG16做了一点变化,把后面三层FC层改为了conv层。可以将其称之为全卷积VGG16。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aGYQlDs7-1654781269279)(photo/Snipaste_2022-05-02_15-25-38.png)]

全卷积VGG16的结构:

全卷积网络:没有全连接,都是卷积操作

1、一张原始图片被resize到(224,224,3)。
2、conv1两次[3,3]卷积网络,输出的特征层为64,输出为(224,224,64),再2X2最大池化,输出net为(112,112,64)。
3、conv2两次[3,3]卷积网络,输出的特征层为128,输出net为(112,112,128),再2X2最大池化,输出net为(56,56,128)。
4、conv3三次[3,3]卷积网络,输出的特征层为256,输出net为(56,56,256),再2X2最大池化,输出net为(28,28,256)。
5、conv3三次[3,3]卷积网络,输出的特征层为256,输出net为(28,28,512),再2X2最大池化,输出net为(14,14,512)。
6、conv3三次[3,3]卷积网络,输出的特征层为256,输出net为(14,14,512),再2X2最大池化,输出net为(7,7,512)。
7、利用卷积的方式模拟全连接层,效果等同,输出net为(1,1,4096)。共进行两次。
8、利用卷积的方式模拟全连接层,效果等同,输出net为(1,1,1000)。
最后输出的就是每个类的预测。


卷积层代替全连接

卷积层和全连接层的区别:

  1. 卷积层为局部连接;
  2. 而全连接层则使用图像的全局信息。

Q:为什么能用卷积的方式模拟全连接?

发散思维,将局部最大化不就得到全局了吗?这首先说明了用卷积层来替代全连接层的可行性

A:卷积层和全连接层都是进行了一个点乘操作,它们的函数形式相同。因此全连接层可以转化为对应的卷积层。我们只需要把卷积核变成跟输入的一个feature map大小(h,w)一样就可以了,这样的话就相当于使得卷积跟全连接层的参数一样多。

比如VGG16中, 第一个全连接层的输入是77512, 输出是4096。这可以用一个卷积核大小 7x7, 步长(stride)为1, 没有填补(padding),输出通道数4096的卷积层等效表示,其输出为 1x1x4096,和全连接层等价。后续的全连接层可以用1x1卷积等效替代。

简而言之, 全连接层转化为卷积层的规则是:将卷积核大小设置为输入的空间大小。

好处:卷积支持多维,全连接只能是接收一维,使用卷积(接收任意维度)就不需要进行 Flatten() 操作。提升效率。

Q:既然全连接好,为什么不用卷积代替全连接呢?

  1. 这是因为全连接代表分类器,卷积不能代表分类器。一般情况下,说分类器,都指的全连接。
  2. 第二点是因为不同硬件做卷积和全连接的效率是不同的。

1X1的卷积的作用

实现特征通道的升维和降维

通过控制卷积核的数量达到通道数大小的放缩。而池化层只能改变高度和宽度,无法改变通道数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值