You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为预训练VGG16添加注意力机制触发层无输出形状RuntimeError如何解决

错误原因

你调用get_output_shape_at(0)时,VGG16模型还没有和输入层绑定,没有经过实际的前向调用构建计算图,因此没有定义输出形状,触发报错。

解决方案

有两种可行的修改方式,任选其一即可:

方案1:直接读取模型的output_shape属性(推荐)

你初始化VGG16时已经指定了输入形状,模型的输出形状是预先确定的,直接读取output_shape属性即可获取通道数,修改第6行代码为:

pt_depth = base_pretrained_model.output_shape[-1]

方案2:调整代码执行顺序,先绑定输入层再获取形状

把获取输出形状的代码移到模型调用输入层的代码之后,修改后对应片段如下:

base_pretrained_model.trainable = False
# 先调用模型绑定输入层
pt_features = base_pretrained_model(in_lay)
# 再获取输出形状
pt_depth = base_pretrained_model.get_output_shape_at(0)[-1]
bn_features = BatchNormalization()(pt_features)

修改完成后即可正常运行后续代码。

内容的提问来源于stack exchange,提问作者Siddharth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:12:03