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

TensorFlow 1.6中如何通过estimator.predict()获取MNIST测试集预测结果

解决MNIST模型打印预测结果的问题

别担心,这事儿其实很简单!你已经训练好模型了,只要几步就能把测试集的预测结果打印出来,甚至还能对比真实标签看看哪里预测错了。我给你一步步演示:

1. 生成预测结果

首先用训练好的模型对测试集做预测,得到每个样本对应10个数字类别(0-9)的概率值:

import numpy as np

# 假设你已经有训练好的model,以及测试数据x_test、y_test
predictions = model.predict(x_test)

这里的predictions是一个形状为(测试样本数, 10)的数组,每一行代表一个样本在10个类别上的概率。

2. 转换为具体的类别标签

接下来把概率值转换成对应的数字标签(取概率最大的那个类别):

# 获取每个样本的预测标签
predicted_labels = np.argmax(predictions, axis=1)

# 处理真实标签:如果你的y_test是独热编码(比如用to_categorical转换过),也要转成数字标签
# 如果y_test本来就是0-9的数字(比如直接从mnist.load_data()得到的),就跳过这行
true_labels = np.argmax(y_test, axis=1) if y_test.ndim == 2 else y_test

3. 打印预测结果

现在就可以自由打印你想要的结果了,比如先看前10个样本的对比:

print("前10个测试样本的预测结果:")
for idx in range(10):
    print(f"样本{idx+1}: 真实标签={true_labels[idx]}, 预测标签={predicted_labels[idx]}, 最高预测概率={np.max(predictions[idx]):.4f}")

要是想看看某个样本的完整概率分布,直接打印predictions[idx]就行:

# 比如查看第3个样本的所有类别概率
print(f"第3个样本的类别概率分布:{predictions[2]}")

4. 进阶:找出预测错误的样本

如果你想排查模型哪里出错了,可以筛选出预测错误的样本:

# 找出所有预测错误的样本索引
wrong_pred_indices = np.where(predicted_labels != true_labels)[0]
print(f"\n测试集里一共有{len(wrong_pred_indices)}个预测错误的样本")

# 打印前5个错误样本
print("前5个错误样本的真实vs预测:")
for idx in wrong_pred_indices[:5]:
    print(f"样本{idx}: 真实={true_labels[idx]}, 预测={predicted_labels[idx]}")

这样你就能清楚看到模型的预测细节啦,不用只盯着准确率看~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:04:06