Inception块
GoogLeNet中的基础卷积块叫做Inception块。如下图所示:
Inception块里有4条并行的线路。前3条线路使用窗口大小分别是1x1,3x3,5x5的卷积层来抽取不同空间尺寸下的信息,其中中间2个线路会对输入先做1x1卷积来减少输入通道数,以降低模型复杂度。第四条线路则使用3x3最大池化层,后接1x1卷积层来改变通道数。4条线路都使用了合适的填充使得输入与输出的高和宽一致。最后将每条线路的输出在通道维上连结,并输入接下来的层中去。
GoogLeNet模型
GoogLeNet跟VGG一样,在主体卷积部分中使用5个模块,每个模块之间使用步幅为2的3x3最大池化层来减小输出高宽。
(1)第一个模块使用一个64通道的7x7的卷积层
(2)第二模块使用2个卷积层:首先是64通道的1x1卷积层,然后是将通道增大3倍的3x3卷积层。它对应Inception块中的第二条线路
(3)第三模块串联2个完整的Inception块。第一个Inception块的输出通道数为64+128+32+32=256,第二个Inception块输出通道数增至128+192+96+64=480
(4)第四个模块串联了5个Inception块,其输出通道数分别是192+208+48+64=512,160+224+64+64=512,128+256+64+64=512,112+288+64+64=528和256+320+128+128=832
(5)第五个模块有输出通道数为256+320+128+128=832和384+384+128+128=1024的两个Inception块。
(6)第五个模块后面紧跟着输出层,该模块同NiN一样使用全局平均池化层来将每个通道的高和宽变成1
(7)最后将输出变成二维数组后接上一个输出个数为标签类别数的全连接层