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

如何在Keras中使用已保存的H5模型进行预测?

没问题!既然你已经用save()把Keras模型存成H5格式了,用它做预测其实很简单,我结合你给出的模型结构(输入形状是(64, 64, 3))给你一步步拆解:

1. 加载保存的H5模型

首先你需要用load_model工具导入已保存的模型,记得导入对应的模块:

from keras.models import load_model

# 替换成你实际的模型文件名
classifier = load_model('你的模型文件.h5')
2. 预处理待预测图像

模型的输入必须和训练时的输入规格完全匹配,所以你需要对单张待预测图像做以下处理:

from keras.preprocessing import image
import numpy as np

# 1. 加载图像并调整到模型要求的尺寸(64x64)
test_image = image.load_img('你的待预测图片路径.jpg', target_size=(64, 64))
# 2. 把图像转换成numpy数组格式
test_image = image.img_to_array(test_image)
# 3. 扩展维度:模型默认接受批量输入,单张图要变成(1, 64, 64, 3)的形状
test_image = np.expand_dims(test_image, axis=0)
# 4. 归一化(和训练时的预处理一致!比如训练时如果用了rescale=1./255,这里必须同步)
test_image = test_image / 255.0
3. 执行预测并解析结果

根据你的分类任务类型(二分类/多分类),解析预测结果的方式略有不同:

二分类场景(比如猫/狗识别)

如果是二分类任务,predict()会返回一个0-1之间的概率值,你可以设定阈值(通常是0.5)来判断类别:

result = classifier.predict(test_image)
# 假设你训练时的标签映射是:猫=0,狗=1
if result[0][0] > 0.5:
    prediction = "狗"
else:
    prediction = "猫"
print(f"预测结果:{prediction}")

多分类场景(比如多种物体识别)

如果是多分类任务,predict()会返回每个类别的概率值,你需要找到概率最高的类别:

result = classifier.predict(test_image)
# 替换成你自己的类别标签列表,顺序要和训练时的类别顺序一致
class_labels = ["类别A", "类别B", "类别C"]
# 找到概率最大的类别索引
predicted_idx = np.argmax(result[0])
prediction = class_labels[predicted_idx]
print(f"预测结果:{prediction},对应概率:{result[0][predicted_idx]:.2f}")

重要注意事项

  • 预处理步骤必须和训练时完全对齐:比如训练时如果做了特定的图像增强(除了随机增强)、归一化方式,预测时必须完全一致,否则会影响准确率。
  • 如果需要批量预测多张图片,可以用ImageDataGenerator的flow_from_directory配合predict_generator方法,效率会更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:06:42