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

在PyCharm中运行Teachable Machines目标识别器时遇报错

解决Teachable Machines模型加载时报错:Unrecognized keyword arguments passed to DepthwiseConv2D: {'groups': 1}

问题场景

在Windows系统的PyCharm中运行从Teachable Machines复制的目标识别脚本,脚本需加载本地keras_Model.h5模型与labels.txt标签文件,实现图片目标识别并输出结果。已安装TensorFlow、NumPy、Pillow、Keras等依赖,但加载模型时触发如下错误:

ValueError: Unrecognized keyword arguments passed to DepthwiseConv2D: {'groups': 1}

报错原因

Teachable Machines导出的.h5模型基于旧版Keras/TensorFlow构建,其中DepthwiseConv2D层包含groups参数;而新版Keras(尤其是Keras 3.x)重构了卷积层实现,DepthwiseConv2D不再支持groups参数,导致模型反序列化失败。

解决方案

方案1:降级到兼容的TensorFlow/Keras版本

卸载当前版本,安装与模型兼容的旧版本(推荐TensorFlow 2.15.x,对应Keras 2.15.x):

pip uninstall keras tensorflow -y
pip install tensorflow==2.15.0

注:TensorFlow 2.x会自带对应版本的Keras,无需单独安装Keras包。

方案2:自定义模型加载逻辑过滤无效参数

若不想降级,可自定义DepthwiseConv2D类,加载时自动移除不支持的groups参数:
修改原脚本中的模型加载部分为以下代码,其余代码保持不变:

from keras.models import load_model
from keras.layers import DepthwiseConv2D

# 自定义DepthwiseConv2D,过滤groups参数
class CustomDepthwiseConv2D(DepthwiseConv2D):
    def __init__(self, **kwargs):
        kwargs.pop('groups', None)
        super().__init__(**kwargs)

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

方案3:重新导出兼容的模型格式

若条件允许,重新访问Teachable Machines,选择导出TensorFlow SavedModel格式(而非.h5),然后使用TensorFlow原生API加载:

import tensorflow as tf

# 加载SavedModel模型
model = tf.saved_model.load("你的SavedModel文件夹路径")
# 预测逻辑需调整为SavedModel的调用方式,示例:
infer = model.signatures["serving_default"]
prediction = infer(tf.convert_to_tensor(data))

验证

修改完成后,替换脚本中的<IMAGE_PATH>为实际图片路径,运行脚本即可正常加载模型并输出识别类别与置信度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:25:16