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

使用Sequential定义Keras模型测试时出现TypeError错误求助

解决方法

1. 统一Keras导入路径

训练和加载模型时必须用完全一致的导入方式,别混用原生Keras和TensorFlow集成的Keras:

  • 如果训练时用的是原生Keras:

    from keras.models import Sequential, model_from_json
    

    加载时也得用这组导入,不能换成tf.keras。

  • 更推荐用TensorFlow自带的Keras,全程都这么写:

    from tensorflow.keras.models import Sequential, model_from_json
    

    要是你环境里同时装了原生Keras和TensorFlow,先把原生Keras卸了:

    pip uninstall keras -y
    

2. 确保保存和加载代码完全匹配

保存模型(对应原生Keras):

# 存模型结构为json
model_json = model.to_json()
with open("model.json", "w") as json_file:
    json_file.write(model_json)
# 存权重为h5
model.save_weights("model.h5")

加载模型(必须和保存时的导入一致):

# 读模型结构
json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
# 加载权重
loaded_model.load_weights("model.h5")

3. 检查环境里的Keras版本冲突

跑下面的代码看看你当前用的Keras路径:

import keras
print(keras.__file__)
import tensorflow.keras
print(tensorflow.keras.__file__)

要是两个路径不一样,说明同时存在原生Keras和tf.keras,直接卸载原生Keras,统一用tf.keras就行。

4. 换个保存方式试试

要是上面的方法都不行,别分开存json和权重了,直接存整个模型:

# 保存完整模型
model.save("full_model.h5")
# 加载完整模型
from keras.models import load_model  # 或者用from tensorflow.keras.models import load_model
loaded_model = load_model("full_model.h5")

这种方式不容易出路径匹配的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 05:36:17