首页 > 编程知识 正文

resnet网络结构详解,神经网络是生成模型还是判别模型

时间:2023-05-06 13:53:46 阅读:14889 作者:3609

一方面,ResNet resnet在2015年ImageNet大规模视觉识别竞赛(imagenetlargescalevisualrecognitionchallenge,ILSVRC )中获得图像分类和物体识别冠军。

残差网络的特点是易于优化,可以通过增加相当大的深度来提高精度。 其内部残差块使用跳跃链路,缓解了深度神经网络中深度增加导致的梯度消失问题。 因此,此后许多方法都是基于ResNet50或ResNet101完成的。

二、残差模块提出背景:对于很多视觉识别任务来说,显示深度很重要。 但是,随着网络深度的增加,发现精度饱和并迅速下降。 此外,这种退化并不是由过拟合引起的,如果将更多的层添加到合适的深度模型中,则会产生更高的训练误差。 如下图所示。

为了解决残差模块:网络加深时的梯度消失问题,引入了残差模块。 对于各层输入x,学习形成残差函数f(x )=h )- x,而不是学习没有x的函数。 如果网络达到最佳并继续加深网络,则将推送重构映射,只剩下identity映射。 这样,理论上网络始终处于最佳状态,网络性能也不会随着深度的增加而下降。

图示残差网络提出identity mapping (恒等映射层)和residual mapping两种结构。 将x输入最终输出到f(x ) x。

identity mapping:将当前输出直接转发到下一层网络。 全部为1:1传输,不添加其他参数。 它相当于跳过本层运算的快捷方式,同时在后向传播过程中,将下一层网络的梯度直接传输到上层网络,从而解决深层网络的梯度消失问题。 (f ) x )=0) )。

实时映射3360 f (x )=h (x )-x

33558 www.Sina.com/building block

这两种结构分别针对ResNet34 (左图)和ResNet50/101/152 (右图),一般结构整体为一个" building block " )左图BasicBlock、右图BottleNeck " 其中右图的目的是减少参数的数量,一眼就能看到。 参看右图,输入为33256的特征,其中第一步是在64个1x-1卷积中将256维通道丢到64维,然后在1x-1卷积中返回256个通道。 参数总数: 1x1x 256 x 643 x64 x 641 x64 x 256=696334另一方面,如果不使用bottleneck,则参考左图,输入假设为3x3x256,第一步经过256个卷积核33256 因此,参数为: 3x3x256x256x2=1179648,相差16.94倍。

三、结构分析下图深入VGG19、34层网络,深入34层网络,使用构建块扩展结构。

如果输入和输出具有相同的维(实线快捷连接),则右图中的构建块可以直接使用恒等快捷连接(identity mapping )。 当维度增加(虚线快捷方式连接)时,考虑两个选项。 一种方法是在快捷方式连接仍执行恒等映射的情况下,通过填充额外的零输入来增加维。(此选项不引入额外的参数。) 第二,快捷方式连接通过1*1卷积对齐维度。

图为Resnet的不同结构,上表中提出了共5个深度的Resnet。 分别为18、34、50、101和152。 首先看表的最左侧,可以看到所有的网络都分为五个部分,分别是conv1、conv2_x、conv3_x、conv4_x

[50层计算: conv1为7*7*64个,conv2为3个构造块,conv3为4个构造块,conv4为6个构造块,conv5为3个构造块一共1 3*3 4*3 6*3 3*3 1=50]

四.代码实现

3359 github.com/py torch/vision/blob/master/torch vision/models/resnet.py # l248

参考:

3359 blog.csdn.net/yaochunchu/article/details/95527188

3359 blog.csdn.net/DCR mg/article/details/79263415

3359 blog.csdn.net/QQ _ 41760767/article/details/97917419

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。