- 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
- 🍖 原作者:K同学啊
本周任务是自行探索解决问题,通过此次思考过程逐渐将知识层面的学习过渡到能力层面的培养上。
一、任务
📌 **你需要解决的疑问:这个代码是否有错?**对错与否都请给出你的思考
📌 **打卡要求:**请查找相关资料、逐步推理模型、详细写下你的思考过程
问题:在ResNeXt网络中定义残差单元块中,如果conv_shortcut=False,那么在执行“x=Add()…”语句时,通道数不一致的,为什么不会报错?
二、代码
# 定义残差单元
def block(x, filters, strides=1, groups=32, conv_shortcut=True):
if conv_shortcut:
shortcut = Conv2D(filters * 2, kernel_size=(1, 1), strides=strides, padding='same', use_bias=False)(x)
# epsilon为BN公式中防止分母为零的值
shortcut = BatchNormalization(epsilon=1.001e-5)(shortcut)
else:
# identity_shortcut
shortcut = x
# 三层卷积层
x = Conv2D(filters=filters, kernel_size=(1, 1), strides