ResNetV1
论文:https://arxiv.org/pdf/1512.03385v1.pdf
代码:参考Tensorflow/slim
特点
第一次提出残差结构,主要解决两个问题
- 梯度消失
- 随着网络深度增加,性能没有提升反而有所下降
如下图,本来要学习H(x),现在转换为F(x)+x,二者效果相同,但是优化难度下降,并且因为多了一个x,使得求导时总有1,避免了梯度消失问题。
进一步拓展残差结构:
网络结构
ResNet主要有34层、50层、101层、152层,主要也就是stage的重复次数不同,整体结构基本一致。
但也计算残差结构使得网络可以变得很深,甚至超过100多层。
ResNetV2
论文:https://arxiv.org/pdf/1603.05027.pdf
代码:参考Tensorflow/slim
与ResNetV1的区别
主要也就是BN、Relu的顺序提到了Conv之前,并且分析了这样的结果是最好的。
网络结构
与V1相比,只是ResNet-block有了改变而已,整个网络结构基本还是一致的。