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

Keras 3.6+TensorFlow 2.18下load_model引用错误及模型加载失败求助

问题解决:Keras加载Teachable Machine模型时的导入与参数兼容错误

问题核心

你遇到的两个问题本质是Keras版本兼容性:

  1. Unresolved reference 'load_model':Keras 3的API路径与旧版存在差异
  2. Unrecognized keyword arguments passed to DepthwiseConv2D: {'groups': 1}:Teachable Machine导出的模型基于旧版TensorFlow捆绑Keras保存,而Keras 3已移除DepthwiseConv2D的groups参数

解决方案

方案1:使用TensorFlow内置的Keras(推荐)

Teachable Machine导出的模型原生适配TensorFlow内置的Keras,无需单独安装独立版Keras,步骤如下:

  1. 卸载独立安装的Keras 3:
pip uninstall keras -y
  1. 修改导入语句为TensorFlow内置Keras的路径:
from tensorflow.keras.models import load_model  # 替换原有的from keras.models import load_model
from PIL import Image, ImageOps
import numpy as np
  1. 移除代码中重复的导入块(你的代码里重复导入了两次load_model、PIL和numpy,需删掉其中一组)

方案2:自定义模型加载逻辑(进阶)

若坚持使用Keras 3,可通过自定义对象处理groups参数的兼容问题:

from keras.models import load_model
from keras.layers import DepthwiseConv2D
from PIL import Image, ImageOps
import numpy as np

# 自定义兼容旧版参数的DepthwiseConv2D
class CompatDepthwiseConv2D(DepthwiseConv2D):
    def __init__(self, groups=None, **kwargs):
        # 忽略groups参数,适配Keras 3的API
        super().__init__(**kwargs)

# 加载模型时指定自定义对象
model = load_model("keras_Model.h5", compile=False, custom_objects={"DepthwiseConv2D": CompatDepthwiseConv2D})

验证修改

完成修改后,替换代码中的<IMAGE_PATH>为实际图片路径,运行代码即可正常加载模型并执行预测。

内容的提问来源于stack exchange,提问作者Duy Nguyen Thanh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 19:53:10