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

Python使用VGG16迁移学习出现list无shape属性报错如何解决

错误原因

你定义的prediction函数仅支持传入单张图像数组,但你传入的training_set是存储所有训练图像的Python列表,列表本身没有shape属性,因此触发AttributeError。

可行解决方案

  • 首先修改调用逻辑,逐张遍历训练集图像调用预测函数,替换原来的直接传入整个列表的代码:
new_training_set = []
for single_img in training_set:
    # 可选:补充BGR转RGB操作,适配VGG16的预训练输入要求
    single_img = cv2.cvtColor(single_img, cv2.COLOR_BGR2RGB)
    pred_res = prediction(model, single_img, patch_size)
    new_training_set.append(pred_res)
  • 修复prediction函数内部的变量名错误:函数形参是model1,但内部调用预测用了全局变量model,改为统一使用形参避免未定义报错:
# 把原函数里的这一行
single_patch_prediction = (model.predict(single_patch_input)[0,:,:,0] > 0.5).astype(np.uint8)
# 修改为
single_patch_prediction = (model1.predict(single_patch_input)[0,:,:,0] > 0.5).astype(np.uint8)
  • (可选优化)512*512图像按224步长切分会有64像素的边缘区域,当前代码直接对小区域resize填充,容易出现拼接缝和精度损失,可改为步长小于224的重叠滑窗切分,重叠区域的预测结果取平均值,能大幅提升最终输出的平滑度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:57:04