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

迁移学习二分类训练得到h5模型后如何在测试数据集上测试

测试已保存h5模型的实现步骤

1. 导入依赖并加载模型

首先加载你已经训练好的h5格式模型,代码如下:

from keras.models import load_model

# 加载保存的模型
model = load_model('vgg16_new_model.h5')

2. 加载测试集

和你训练阶段构造training_set、val_set的逻辑一致,使用ImageDataGenerator读取测试文件夹下的图像,必须保证测试集的预处理逻辑和训练阶段完全一致(比如训练时用了rescale=1./255,测试阶段也要加相同参数,输入尺寸也需要和训练时匹配,VGG16默认输入为224x224),二分类任务的构造代码示例如下:

from keras.preprocessing.image import ImageDataGenerator

# 初始化测试集数据生成器,和训练预处理保持一致
test_datagen = ImageDataGenerator(rescale=1./255) # 示例参数,替换为你训练时的预处理参数

test_set = test_datagen.flow_from_directory(
    '你的测试集文件夹路径/test', # 替换为你的test文件夹实际路径
    target_size=(224, 224), # 和训练时的输入尺寸一致
    batch_size=32, # 和训练时的batch size可不同,不影响结果
    class_mode='binary', # 二分类固定为binary
    shuffle=False # 测试阶段不需要打乱顺序,方便对应样本和预测结果
)

3. 模型评估

直接调用模型的evaluate方法即可得到测试集上的损失值和准确率:

test_loss, test_acc = model.evaluate(test_set, steps=len(test_set))
print(f"测试集损失:{test_loss:.4f}")
print(f"测试集准确率:{test_acc:.4f}")

可选:获取单样本预测结果

如果需要得到每个测试样本的预测标签、计算混淆矩阵、召回率等更细粒度的指标,可以用predict方法:

import numpy as np

# 得到所有测试样本的预测概率
predictions = model.predict(test_set, steps=len(test_set))
# 二分类阈值设为0.5,转换为预测标签
pred_labels = [1 if x > 0.5 else 0 for x in predictions]
# 读取测试集的真实标签
true_labels = test_set.classes

# 接下来可以自定义计算各类指标,比如混淆矩阵
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(true_labels, pred_labels)
print("混淆矩阵:")
print(cm)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:06:03