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

TensorFlow.js加载Layers模型报错:InputLayer需指定batchInputShape或inputShape

解决TensorFlow.js加载Keras VGG16模型的InputLayer错误

核心原因

Keras v3与TensorFlow.js Converter v4.x存在兼容性适配问题,或模型导出/转换环节未明确固化输入形状,导致转换后的TFJS模型丢失输入层的形状配置。

具体解决步骤

  • 固化Keras模型输入形状后再导出
    在训练代码的模型导出环节,明确设置输入层形状,避免导出时丢失关键配置:

    # 替换为你训练时实际使用的输入形状,示例为(224,224,3)
    model.input.set_shape((None, 224, 224, 3))
    # Keras v3推荐使用官方保存方法
    keras.saving.save_model(model, "cloud_model.h5")
    
  • 转换时强制指定输入形状
    使用TensorFlow.js Converter转换时,通过参数明确输入形状,覆盖自动检测的潜在问题:

    tensorflowjs_converter --input_format=keras --output_format=tfjs_layers_model --input_shape=1,224,224,3 ./cloud_model.h5 ./tfjs_output
    

    其中1,224,224,3对应[batch_size, height, width, channels],batch_size设为1或null均可,核心是严格匹配训练时的输入维度。

  • 调整版本兼容

    • 若上述方法无效,尝试降级Keras至v2.15.0(TFJS对Keras v2的支持更成熟稳定),重新训练导出后再转换。
    • 或升级TensorFlow.js Converter至最新稳定版,修复Keras v3的转换适配问题。
  • 应急修复model.json
    打开转换后的model.json,找到InputLayer的配置节点,手动添加形状字段:

    "config": {
      "name": "input_layer",
      "inputShape": [224, 224, 3]
    }
    

    注意形状需与训练时完全一致,此方法仅作临时应急,优先推荐前两种方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 05:30:53