一、课题背景和开发环境
📌第J7周:对于ResNeXt-50算法的思考📌
语言:Python3、Pytorch、TensorFlow
学到这里相信大家都有了一定的基础,基础程序的编写是没什么大问题了
我后面将会逐步引导大家从 知识层面的学习 过度到 能力层面的培养
前几天有同学询问了我一个很有意思的问题,我把它作为本周的任务
希望大家可以积极思考、探索
解决问题不是目的,学会如何解决这类问题才是重点
📌本周任务:📌
– 📌 你需要解决的疑问:这个代码是否有错? 对错与否都请给出你的思考
– 📌 打卡要求: 请查找相关资料、逐步推理模型、详细写下你的思考过程
二、模型代码(来自K同学啊)
先附上上周我所使用的代码
打印结构图
残差模块堆叠
部分结构图
三、模型分析
我认为对于类似结构中的问题通过打印结构图的通道数可以方便学习理解,同时也能帮助我们在搭建网络的时候进行纠错。
对于代码的正确与否,我认为没有问题。
问题的产生应当来自对conv_shortcut的判断条件不明,重点关注什么时候conv_shortcu=False。
当conv_shortcut=True时,此时代码执行没有问题,二者通道数相等。
根据代码,在对x进行翻倍操作之后conv_shortcut=False,此时x为上一个Block的输出,而在第一次的Block中x的通道数已经翻倍,因此x的通道数为filtes*2,即代码没有问题。
对于类似的问题也可以采取将conv_shortcut设置为True,然后通过debug调试,也很容易验证代码的对错与否