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

Keras中InceptionV3的input_shape参数报错,求解决及版本相关信息

问题分析与解决方法

报错原因

报错明确指出input_shape必须是三个整数的元组,你的代码中IMAGE_SIZE + [3]生成的是列表类型,而新版本的Keras(尤其是Keras 3.x及整合后的TensorFlow Keras)对input_shape的类型校验更严格,不再接受列表作为输入;另外如果IMAGE_SIZE本身不是包含两个整数的可迭代对象(比如元组/列表),也会导致拼接后的结构不符合要求。

解决方法

  • 转换为元组类型:将拼接后的列表转为元组,修改代码如下:
    inception = InceptionV3(input_shape=tuple(IMAGE_SIZE + [3]), weights='imagenet', include_top=False)
    
  • 直接构造元组:更直观的写法,避免类型问题:
    # 确保IMAGE_SIZE是类似(224,224)的结构
    inception = InceptionV3(input_shape=(IMAGE_SIZE[0], IMAGE_SIZE[1], 3), weights='imagenet', include_top=False)
    
  • 确认IMAGE_SIZE的有效性:检查IMAGE_SIZE是否定义为两个整数的集合,比如:
    IMAGE_SIZE = (224, 224)  # 正确示例
    

版本相关说明

在Keras 2.x版本中,部分场景下允许列表作为input_shape参数,但从Keras 3.x开始(包括TensorFlow 2.15+集成的Keras),框架对输入参数的类型校验更加严格,明确要求input_shape为元组类型,这是版本更新带来的兼容性变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 22:13:22