ResNet 结构

写在前面:

本人小菜鸡一位,这是我的第一篇博客,没什么写作和科研经验,主要目的是为了记录自己对学习内容的理解和便于回顾。本文内容上参考了知乎的一篇文章,然后是根据自己的理解重新作图、编排,主要内容是结合论文以及 PyTorch 官方代码对 ResNet 结构的理解,不涉及网络的优缺点分析以及某个或某些操作的原因解释等内容。

文章如有内容上的错误,请各位大佬及时批评指正,如有涉及侵权等问题,请及时联系我删除文章。小弟初来乍到,大佬多多指教!

文章参考:https://zhuanlan.zhihu.com/p/79378841

ResNet 论文:https://arxiv.org/pdf/1512.03385.pdf

一、ResNet 的不同结构

ResNet 18、ResNet 34 和 ResNet 50 等名称中的数字是各种网络的深度,也就是说“需要通过训练更新参数”的层数(如卷积层、全连接层等)。图 1 是论文里给出每种 ResNet 的具体结构,它们输入图像的大小都是 3 * 224 * 224。

根据图 1,我们可以看出所有的 ResNet 都包含了 5 个 layer(conv1、conv2_x、conv3_x、conv4_x、conv5_x,我们将 conv1 记作 layer 0,依此类推,最后是 layer 4),这个 5 个 layer 之后还有平均池化和全连接层。也就是说,这 5 种 ResNet 网络的总体结构是一致的。

图 1.  不同深度 ResNet 的结构

二、网络深度计算 

ResNet 的 5 个 layer 包含的卷积层总数加上最后的全连接层数 1,就是对应的网络深度。以 ResNet 18、ResNet 34 和 ResNet 50 为例,其深度计算如下:

ResNet 18 = 1 + 2 * 2 + 2 * 2 + 2 * 2 + 2 * 2 + 1;

ResNet 34 = 1 + 2 * 3 + 2 * 4 + 2 * 6 + 2 * 3 + 1;

ResNet 50 = 1 + 3 * 3 + 3 * 4 + 3 * 6 + 3 * 3 + 1。

三、两种残差块结构

 图 2.  两种残差结构(左:BasicBlock,右:BottleneckBlock)

四、PyTorch 官方 ResNet 18 代码结构

from torchvision import models

res18 = models.resnet18()

print(res18)

五、ResNet 18 结构  

以下将结合官方代码进行说明。

· 椭圆形框表示输入或输出;

· 直角矩形框表示卷积层或池化层

· 椭圆框里特征图尺寸表示为 Channel * Height * Width

· 直角矩形框里主要是卷积或池化的一些参数(如卷积核大小、输出通道数、步长、填充)

1、layer 0 与 layer 1 的池化部分

2、layer 1 池化之后的部分

3、layer 2 部分

4、layer 3 与 layer 4 部分

layer 3 与 layer 4 这两部分的结构与 layer 2 结构完全相同,无非就是通道数变多,输出尺寸变小,不再赘述。 

5、最后的全连接层

此外,ResNet 18 和 ResNet 34 都是基于 BasicBlock,两个网络的结构非常相似,差别只在于每个 layer 的 Block 数目。

六、ResNet 50 结构

1、layer 0 与 layer 1 的池化部分

该部分与 ResNet 18 完全一致,可参考 ResNet 18。

2、layer 1 池化之后的部分

3、layer 2 部分

4、layer 3 与 layer 4 部分

layer 3 与 layer 4 这两部分的结构与 layer 2 结构完全相同,除了通道数变多,输出尺寸变小,再就是每个 layer 的 Block 数目不同,不再赘述。 

5、最后的全连接层

该部分与 ResNet 18 完全一致,可参考 ResNet 18。

此外,ResNet 50、ResNet 101 和 ResNet 152 都是基于 BottleneckBlock,它们的网络结构非常相似,差别只在于每个 layer 的 Block 数目。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: dualresnet结构图是一个神经网络模型的结构示意图,主要由两个ResNet模块相互交替组成。这个模型的设计旨在解决深度神经网络训练时的梯度消失和梯度爆炸等问题,以提高模型的训练效果和精度。具体结构图可以通过搜索引擎或相关学术论文进行查找。 ### 回答2: Dual ResNet结构图是用于深度学习中的一个网络架构。它的主要目的是通过融合不同层级的特征信息来提高模型的性能。该结构图包括两个ResNet模型,分别为源模型和目标模型。 源模型接收输入数据并通过一系列卷积和池化等操作学习特征。该模型中的残差连接用于解决梯度消失问题,通过直接将前一层的特征进行无损复制和直接相加操作,使得网络能够更好地学习输入数据的高阶特征。同时,该模型还引入了批量归一化和修正线性单元(ReLU)等激活函数来提高网络的非线性表示能力。 目标模型的结构与源模型类似,但使用不同的参数进行训练。这可以通过使用不同的数据集或者采用迁移学习等方式来实现。目标模型的目的是学习到源模型没有学到的特征,从而提高模型的泛化能力。 使用Dual ResNet结构时,源模型和目标模型可以共享部分层。这种共享有助于模型的参数有效利用,并减少训练过程中的计算量,从而提高模型的训练效率。此外,源模型和目标模型可以通过反向传播算法来进行训练,并使用梯度下降优化方法来最小化预测误差。 总之,Dual ResNet结构图是一种利用两个ResNet模型进行特征融合的网络架构,通过学习源模型和目标模型的不同特征信息来提高模型的性能。它可以应用于各种深度学习任务,如图像分类、目标检测和语义分割等。 ### 回答3: Dual ResNet是一种深度学习网络结构,主要用于图像识别和分类任务。其结构图如下所示: Dual ResNet由两个ResNet模块组成,分别为主干网络和辅助网络。主干网络通常是一个更深的ResNet模型,用于提取图像的高级特征。而辅助网络是一个较浅的ResNet模型,用于提取图像的低级特征。 在Dual ResNet中,图像首先经过主干网络的多个卷积层和残差块,用于提取图像的复杂特征。这些特征具有较高的抽象能力,可用于更精确的图像分类。 接下来,主干网络的输出特征图被分为两个分支,分别连接到辅助网络的输入。辅助网络由一系列较浅的卷积层和残差块组成,用于提取图像的低级特征。 最后,主干网络和辅助网络的输出特征图被融合在一起,并经过全局平均池化层和全连接层,得到最终的分类结果。 Dual ResNet结构图展示了其特殊的网络组成方式,充分利用了主干网络和辅助网络的特点。主干网络可以提取更复杂的特征,而辅助网络可以提取更细节的特征。通过融合两者的输出,Dual ResNet能够同时利用高级和低级特征,提高图像分类的准确性。 总结起来,Dual ResNet结构图展示了主干网络和辅助网络的连接方式,通过融合不同级别的特征,提高图像分类任务的性能。这种结构图的设计充分考虑到了特征的多样性和层次性,使得Dual ResNet在图像识别领域取得了非常好的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值