PyTorch学习-卷积神经网络(高级篇)

GoogLeNet

PyTorch学习-卷积神经网络(高级篇)
观察具有相同结构的块,用函数封装起来,减少代码冗余。

Inception :电影《盗梦空间》,重用
Concatenate :拼接
Average Pooling:设置Padding,stride保证输入输出大小相同

1×11\times 1 Conv :融合了不同通道相同位置的信息
C×W×H=>1×W×HC\times W \times H => 1 \times W \times H
作用:减少运算量
使用5×55\times 5 Convolution
192@28×28=>32@28×28[email protected] \times 28 => 32 @ 28\times28
52×282×192×32=1204224005^2 \times 28^2 \times 192 \times 32 = 120422400
使用1×11\times 1 Convolution
192@28×28=>16@28×28=>32@28×28[email protected] \times 28 =>[email protected] \times 28 => 32 @ 28\times28
12×282×192×16+52×282×16×32=124336481^2 \times 28^2 \times 192 \times 16 + 5^2 \times 28^2 \times 16 \times 32 = 12433648

Plain nets: stacking 3x3 conv layers

PyTorch学习-卷积神经网络(高级篇)

56-layer的效果比20-layer的差,可能是梯度消失或者过拟合
多个小于1的梯度相乘结果趋近于零,权重的更新(w = w - lr*g) 就几乎不更新。

Residual net

PyTorch学习-卷积神经网络(高级篇)
跳链接:H(x)=F(x)+xH(x) = F(x)+x
求导为 H(x)=F(x)+1H'(x) = F'(x) + 1 ,解决了梯度为零的问题