当前位置:网站首页 > R语言数据分析 > 正文

Resnet101模型(resnet101模型FLOPs)



ResNet50的源码路径为mmdet/models/backbones/resnet.py。

ResNet系列网络是经典网络之一,后续很多变种(如ResNeXt和ResNeSt等)和其他网络都借鉴了其残差块结构,首先先对一些结构名词做一些解释,便于理解。残差块,即Residual Block,也就是接下来要讲解的BasicBlock和Bottleneck两个基本模块,若干卷积层、归一化层和激活层构成上述两个基本模块,若干基本模块构成一个stage,若干stage构成整体的网络。

ResNet根据网络层数不同,可分为5个模型。分别是ResNet-18、ResNet-34、ResNet-50、ResNet-101和ResNet-152。

MobileNetV2与resnet50 101的flops对比 resnet50与resnet101区别_python

除了网络层数不同外,构成模型的基础结构也有所差异,ResNet-18和ResNet-34的基础结构为BasicBlock,其他模型的基础结构为Bottleneck。两者的结构如下图所示(图像截取自B站大佬的讲解视频),左侧为BasicBlock结构,右侧为Bottleneck结构。

MobileNetV2与resnet50 101的flops对比 resnet50与resnet101区别_深度学习_02

该结构较为简单,__init__()中定义了相关的卷积、归一化和激活函数操作,forward()中定义特征图的前向传播路径。

需要注意的是,每个stage之间输出特征矩阵的维度不同,例如第一个stage(即表格中的conv2_x)输出特征矩阵为56*56*64,该特征矩阵作为输入,会输入到第二个stage(即表格中的conv3_x)中,因此第二个stage中的第一个BasicBlock的捷径分支需要对channel维度进行相应的升维处理,由64变为128,;同时主分支对空间维度进行下采样,由56*56变为28*28,对通道维度进行升维处理,由64变为128,最后完成相加操作。

因此,我们需要对每一个stage的第一个残差块做特殊设置。

MobileNetV2与resnet50 101的flops对比 resnet50与resnet101区别_pytorch_03

该结构是构建层数较深模型的基本结构,采用1×1的卷积操作目的是减少参数量,特别是在层数较多的模型中,可以减少相当数量的参数,具体参数量的计算参考讲解视频。

在初始化函数中,style关键字参数有'pytorch'和'caffe'两种选择,区别在于前者将stride=2(即空间维度的下采样操作)整合在3×3卷积中,后者整合在第一个1×1卷积中;

同时,该结构还支持plugin(类似于插件),插入的位置在三个卷积层之后;

首先介绍结构配置:

结构配置中指定了网络深度,残差块类型和每个stage中残差块的个数;

接下来介绍初始化参数的含义:

由于篇幅有限,暂不解析源码中每个函数的实现过程,大家可根据参数的含义推断函数功能并自行阅读源码。

到此这篇Resnet101模型(resnet101模型FLOPs)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • virsh删除虚拟机的命令(virsh 删除虚拟机)2026-04-11 13:36:09
  • raise me up(raise me up原唱)2026-04-11 13:36:09
  • redisson连接集群错误(rediscli连接集群)2026-04-11 13:36:09
  • swagger无法访问(swagger无法访问网页)2026-04-11 13:36:09
  • entrust安卓下载(entrust软件)2026-04-11 13:36:09
  • vears英语怎么读(vest英语怎么读?)2026-04-11 13:36:09
  • nacos配置中心原理(nacos配置中心springboot)2026-04-11 13:36:09
  • modbus报文解析 8A AC(modbus报文解析RTU)2026-04-11 13:36:09
  • resnet50参数量(resnet50参数量计算)2026-04-11 13:36:09
  • msvcp71文件(msvcprt)2026-04-11 13:36:09
  • 全屏图片