GoogLeNet v1结构


GoogLeNet是google2014年推出的深度神经网络模型,原论文名称为:Going deeper with convolutions,在沐神的书上也被叫做含并⾏连结的⽹络(主要由于Inception块中的结构)。该模型在2014年ILSVRC 2014比赛中竞赛中夺得冠军,14年之后也在不断发展,这里就介绍一下初始的版本。

Inception块

GoogLeNet思想有点类似于VGG,先构建块,网络主要通过块的堆叠实现,不过这里的块与VGG块不同,称之为Inception,GoogLeNet的核心就是Inception块,一个Inception块的结构如下图:
Inception块的结构
一个Inception块可以说是集合了LeNet,AlexNet,NiN,VGG其中的架构,包括3x3卷积层、1x1卷积层、5x5卷积层和池化层,可以从上图看到,Inception块与其他的什么VGG块、NiN块不一样的是,VGG与NiN块内部都是一条路的运算,而一个Inception块包括4条路,将输入通过不同的路得到不同的输出(注意这里的输出形状都是一样的),然后将这些输出在channel方向concat起来得到一个Inception的最后输出。我们从左到右将路记为第1,2,3,4路,一个Inception块的这些路具体介绍如下:
第一条路: 只用到了1x1的卷积核,所以输出不改变原输入的形状,输出channel数为超参数。
第二条路: 用到了1x1卷积核与3x3卷积核,1x1卷积层不改变输入形状,channel数自定,3x3卷积层的padding为1,即分别在四周添1行列,stride为1,输出的形状为 ( n − 3 + 2 + 1 ) / 1 = n (n-3+2+1)/1=n (n3+2+1)/1=n(n为输入长或者高),所以可以看到输出形状还是与输入相同,但channel数不一样。
第三条路: 用到了1x1卷积核与5x5卷积核,1x1卷积层不改变输入形状,channel数自定,5x5卷积层的padding为2,即分别在四周添加2行列,输出形状为 ( n − 5 + 4 + 1 ) / 1 = n (n-5+4+1)/1=n (n5+4+1)/1=n(n为输入长或者高),所以可以看到输出形状还是与输入相同,但channel数不一样。
第四条路: 用到了3x3最大池化与1x1卷积,最大池化的padding为1,每个channel输出形状还是与输入相同,接一个1x1的卷积层,也不改变输入形状。
最后将这四条路的输出按照通道数方向合并,得到一个Inception块的最后输出。
第一个Inception块可由下图表示(来自沐神):
第一个Inception块描述

GoogLeNet

GoogLeNet核心就是不同Inception块的堆叠,原作者使用的是9个Inception块,我们可以把GoogLeNet分成5段,称之为5个stage,具体结构如下:
在这里插入图片描述
具体来说,GoogLeNet开始使用一个7x7的卷积层,3x3的最大池化;1x1卷积层,3x3的最大池化,3x3的最大池化;然后是两个Inception块,当然前一个块的输出形状要对应后一个块的输入形状,接一个3x3的最大池化;5个Inception块,接一个3x3的最大池化;2个Inception块,接一个全局平均池化,最后接一个全连接得到最后输出。

代码可见:链接
原论文可见:GoogLeNet



参考资料:李沐—动手学深度学习v2
深度学习笔记 11/16

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值