上一章完成的卷积神经网络主要是串行的,比较简单。
现在我们看一些比较复杂的神经网络结构。
一:GoogleLeNet
目前常用在作为主干网络部分。
看起来整个结构非常复杂,如果一层一层写的话比较复杂。需要减少代码冗余。
我们可以将相同的部分封装成类。
我们可以看见有很多部分由5个蓝色和一个红色组成,重点关注一些这些部分。
了解到1x1卷积的过程,那这样的卷积到底有说明用处?
可以发现,在结果没有变化的基础上,我们采用1x1的卷积使我们的运算量大大降低了。
1.1分支代码
在将这四个模块都计算结束后,将结果都拼接到一起。
1.2全部代码
二:ResidualNet
residual net可以解决梯度消失问题。大家可以计算下,H(x)对x进行求导,发现结果是F(x)对x求导加1。整个1就很好的解决了梯度消失的问题,当F(x)导数很小的时候,结果也是在1附近。
整个流程如图
2.1如何实现Residual Block