当前位置: 首页 > article >正文

365打卡第J7周:对于ResNeXt-50算法的思考

  •    🍨 本文为🔗365天深度学习训练营中的学习记录博客
  • 🍖 原作者:K同学啊

🏡 我的环境:

语言环境:Python3.10
编译器:Jupyter Lab
深度学习环境:torch==2.5.1    torchvision==0.20.1
------------------------------分割线---------------------------------

该代码定义了一个残差单元,包含以下部分:

  1. 捷径连接(shortcut)处理
  2. 主路径的三层卷积层结构
  3. 分组卷积的实现
  4. 最终的残差连接和激活

这部分代码在功能上没有问题,但有一个需要注意的点:

主路径的最后一层卷积输出通道数是filters * 2,这与捷径分支的通道数保持一致(当conv_shortcut=True时)。这是正确的设计,保证了两个分支可以相加。

分析一下潜在的通道数和尺寸匹配问题:

  1. conv_shortcut=True时:

    • shortcut分支:输出通道数为filters * 2
    • 主路径:最终输出通道数也为filters * 2
    • 尺寸变化:shortcut使用strides参数调整尺寸
  2. conv_shortcut=False时:

    • shortcut直接使用输入x
    • 则直接将输入张量 x 作为快捷连接。
    • 在这种情况下,即使通道数不一致也不会报错的可能原因如下:此时,shortcut 的维度不同于 x 的维度。但是,由于 Add 层具有广播机制,因此会自动对两个输入进行广播,以使它们的维度相同。这是因为 Add 层会在计算中使用广播机制,这使得在执行相加操作之前,较小张量的形状会被扩展以匹配较大张量的形状。具体来说,如果 shortcut 的形状是 (h, w, c1),x 的形状是 (h, w, c2),其中 c1 不等于 c2,则 shortcut 会被自动扩展为 (h, w, c2),使得 x 和 shortcut 的形状相同。因此,即使通道数不一致,也可以进行相加操作。


http://www.kler.cn/a/614340.html

相关文章:

  • 【MySQL数据库】MySQL 主从复制检查方式
  • es6 fetch
  • 【商城实战(100)】商城败局启示录:探寻成功的反方向
  • 算法刷题记录——题解目录汇总(持续更新)
  • 拦截器和过滤器详解
  • Centos与Ubuntu系统的对比分析
  • 《K230 从熟悉到...》矩形检测
  • [GXYCTF2019]禁止套娃1 [GitHack] [无参数RCE]
  • 算法基础——树
  • 表单对象与当前行对象的 区别
  • [编程题]16、偶数求和
  • 4月手机新品前瞻,影像,性能与设计卷得起飞
  • 图解AUTOSAR_SWS_SPIHandlerDriver
  • Git项目要改变仓库地址
  • 生成树和VRRP实验
  • 第十三章:面向对象思想(OOP)与面向过程思想的对比与应用
  • 如何缩短研发周期,降低研发成本?全星APQP软件为您提供解决方案
  • 29_项目
  • QML中使用Image显示图片和使用QQuickItem显示图片
  • 【C#】关键字 volatile