365天深度学习训练营-第J7周:对于ResNeXt-50算法的思考

目录

一、前言

二、对问题的描述和评价


一、前言

📌第J7周:对于ResNeXt-50算法的思考📌

语言:Python3、Pytorch、TensorFlow

学到这里相信大家都有了一定的基础,基础程序的编写是没什么大问题了
我后面将会逐步引导大家从 知识层面的学习 过度到 能力层面的培养
前几天有同学询问了我一个很有意思的问题,我把它作为本周的任务
希望大家可以积极思考、探索
解决问题不是目的,学会如何解决这类问题才是重点
 

📌本周任务:📌
– 📌 你需要解决的疑问:这个代码是否有错? 对错与否都请给出你的思考
– 📌 打卡要求: 请查找相关资料、逐步推理模型、详细写下你的思考过程

二、对问题的描述和评价

在Resnext网络中 定义残差单元块中,如果conv_shortcut=False,那么执行“x=Add()…”语句时,通道数不一致的,为什么不会报错呢?

在 ResNeXt 网络中,如果定义的残差单元块中 conv_shortcut=False,那么在执行 x = Add()([x, shortcut]) 语句时,即使通道数不一致也不会报错的原因如下:

在这种情况下,shortcut 的维度不同于 x 的维度。但是,由于 Add 层具有广播机制,因此会自动对两个输入进行广播,以使它们的维度相同。这是因为 Add 层会在计算中使用广播机制,这使得在执行相加操作之前,较小张量的形状会被扩展以匹配较大张量的形状。

具体来说,如果 shortcut 的形状是 (h, w, c1),x 的形状是 (h, w, c2),其中 c1 不等于 c2,则 shortcut 会被自动扩展为 (h, w, c2),使得 x 和 shortcut 的形状相同。因此,即使通道数不一致,也可以进行相加操作。

总之,Add 层具有自动广播机制,可以在计算时自动扩展较小张量的形状以匹配较大张量的形状,因此即使通道数不一致也不会报错。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值