CNN(七):ResNeXt-50算法的思考

在进行ResNeXt-50实战练习时,我也跟其他学员一样有这个疑惑,如下图所示:

反复查看代码,仍然有些疑惑,甚至怀疑是不是代码错了。实践是检验真理的唯一标准,先把代码跑起来再说。发现运行完全没有问题,再通过对比查看网络结构和代码后,搞清楚了原因,根本原因就在stack的设计,即一个conv_shortcut=True的block+n个conv_shortcut=False的堆叠残差单元,如下图所示:

下面以filters=128,blocks=2的入参来说明原因。

(1)1个block(conv_shortcut=True):conv_shortcut=True,结合代码可知,在进行Add操作时,是将进行了Conv+BN操作的特征图(filters=2*128),与后续[(Conv+BN+ReLU)+ 分组卷积 + (Conv+BN) ]的一系列操作后得出的特征图(filters=2*128)进行Add操作,此时Add的两部分的通道数均是2*128,即256,之后再进行ReLU操作;

(2)2个block(conv_shortcut=False):conv_shortcut=False,结合代码可知,在进行Add操作时,是直接对输入的x与后续的[(Conv+BN+ReLU)+ 分组卷积 + (Conv+BN) ]的一系列操作后得出的特征图(filters=2*128)进行Add操作。这里为什么add的其中一部分是输入x,是因为此时的输入x,是已经通过上面的1个block操作了,此时x的通道数原本就是2*128,即256。因此在进行Add操作时,与后续得出的特征图(filters=2*128)在通道数上完美匹配。

其他filters=256、512、1024则是类似的操作。

相关推荐
学习前端的小z7 分钟前
【AIGC】如何通过ChatGPT轻松制作个性化GPTs应用
人工智能·chatgpt·aigc
埃菲尔铁塔_CV算法35 分钟前
人工智能图像算法:开启视觉新时代的钥匙
人工智能·算法
EasyCVR35 分钟前
EHOME视频平台EasyCVR视频融合平台使用OBS进行RTMP推流,WebRTC播放出现抖动、卡顿如何解决?
人工智能·算法·ffmpeg·音视频·webrtc·监控视频接入
打羽毛球吗️42 分钟前
机器学习中的两种主要思路:数据驱动与模型驱动
人工智能·机器学习
好喜欢吃红柚子1 小时前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn
小馒头学python1 小时前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习
神奇夜光杯1 小时前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
正义的彬彬侠1 小时前
《XGBoost算法的原理推导》12-14决策树复杂度的正则化项 公式解析
人工智能·决策树·机器学习·集成学习·boosting·xgboost
Debroon1 小时前
RuleAlign 规则对齐框架:将医生的诊断规则形式化并注入模型,无需额外人工标注的自动对齐方法
人工智能
羊小猪~~2 小时前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习