当前位置:   article > 正文

Resnet论文解读以及pytorch在cifar-10上的Resnet模型_cifar10 resnet模型结构图

cifar10 resnet模型结构图
  1. Resnet的基本原理

    Resnet(残差网络),是基于CNN的一种模型,示意图如下:
    Resnet基本结构
    如上图所示,传统的CNN网络模型,只有输入x–>F(x)–>relu(F(x)),也就是图中的left部分,而传统的CNN模型在训练的时候,随着网络层数的增加,会出现很难训练的情况(主要是由于梯度爆炸或者梯度消失的问题),由此,华人科学家 何凯明 大神提出了Resnet结构,简单来讲Resnet的结构由上图的left部分 + right部分,最后的输出为relu(F(x)+x),其中right往往可以进行一些例如indentity mapping,或者卷积或者池化等操作,本质上是left与right两个路径之间获取的特征图的融合,而且right部分采取indentity mapping方式的时候,这样能够更好的保留输入的梯度,从而解决(确切的说是大大减缓了)梯度问题,使得训练更深的模型变为了可能。

  2. Resnet优点

  • 相比传统的卷积神经网络如VGG复杂度降低,需要的参数下降

  • 可以做到更深,不会出现梯度弥散的问题

  • 优化简单,分类准确度加深由于使用更深的网络

  • 解决深层次网络的退化问题

  • 实现了不同路径特征图的融合

  1. 举例理解Resnet

Resnet举例理解
如上图,假设输入的图片为input为64 * 32 * 32,其中64是特征图的个数,32 * 32是图片的大小,那么经过左图中的left路径,先进行64个卷积核大小为3 * 3 ,stride=1,padding=1的卷积操作,获取的特征图为64 * 32 * 32*,然后经过relu,在经过64个卷积核大小为3 * 3 ,strde=1,padding=1的卷积操作,获取的特征图不变,64 * 32 * 32,所以left=64 * 32 * 32,左图右边支路是个恒等映射,输出的特征图right=64 * 32 * 32,然后进行summation操作,将获得的left与right在维度上进行相加,即所谓的left+right=F(x)+(x)(注意Resnet中left与right必须维度相等才能相加,设计网络时要注意),之后通过relu(left+right),获得融合后的输出。
右图,同理,只是使用了1 * 1的卷积核,可以再次减少参数。
4. pytorch实现

  • 网络模型
impor
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/598194
    推荐阅读
    相关标签
      

    闽ICP备14008679号