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

使用keras.models.load_model加载文件时出现OSError:文件签名未找到错误

问题根源与解决方法

你犯了一个基础概念错误:keras.models.load_model() 是用来加载训练完成后保存的模型文件(比如 .h5、.keras 格式),不是加载模型定义的 Python 源码文件(.py)。你传入的路径是模型的代码文件,HDF5 库无法识别其文件签名,因此触发报错。


解决步骤

1. 先确保已保存训练好的模型

在你的模型定义代码中,训练完成后必须调用 model.save() 生成合法的模型文件:

# 假设你的训练好的模型变量名为 model
# 保存为 HDF5 格式
model.save("C:/Users/Hussein Ali/Desktop/d/DNNModel.h5")
# 或者保存为 Keras 原生格式(推荐)
model.save("C:/Users/Hussein Ali/Desktop/d/DNNModel.keras")

2. 加载模型时传入正确的文件路径

修改加载代码,指向刚才保存的模型文件,而非 .py 源码:

from keras.models import load_model
# 加载 HDF5 格式模型
model = load_model("C:/Users/Hussein Ali/Desktop/d/DNNModel.h5")
# 或者加载 Keras 原生格式模型
model = load_model("C:/Users/Hussein Ali/Desktop/d/DNNModel.keras")

3. 如果只是复用模型结构(不加载训练权重)

若你只想使用 .py 文件里的模型定义,直接导入代码中的模型构建函数即可:

# 假设 DNNModel.py 中有构建模型的函数 build_dnn_model()
from DNNModel import build_dnn_model
model = build_dnn_model()
# 若需单独加载权重,再执行
model.load_weights("C:/Users/Hussein Ali/Desktop/d/模型权重文件.h5")

关键提醒

别混淆两类文件:

  • .py:模型结构的代码定义文件,用于构建模型框架
  • .h5/.keras:训练后生成的二进制文件,包含模型结构+训练权重(或单独权重)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 03:59:53