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

TensorFlow Keras CategoricalCrossentropy模型预测结果存储位置问询

获取TensorFlow模型预测值的解决方案

你当前的问题是没有调用模型的预测方法生成预测值,y_test只是拆分出来的真实标签,y_true和y_pred需要你手动生成。以下是具体步骤:

1. 生成模型预测值

训练完成后,调用model.predict()方法传入测试数据即可得到预测结果。根据你的代码,有两种方式:

方式一:直接用测试特征矩阵X_test

# 生成测试集每个样本的类别概率(softmax输出)
y_pred_probs = model.predict(X_test, verbose=0)
# 将概率转换为类别标签(取概率最大的类别索引)
y_pred = y_pred_probs.argmax(axis=1)

方式二:用已创建的validation_dataset

# 从验证数据集生成预测概率
y_pred_probs = model.predict(validation_dataset, verbose=0)
y_pred = y_pred_probs.argmax(axis=1)

注:verbose=0是关闭预测过程的日志输出,可根据需要调整为1或2。

2. 转换真实标签格式

因为你用了CategoricalCrossentropy损失函数,y_test应该是one-hot编码的格式。要和预测标签对比,需要把它转成类别索引:

# 将one-hot编码的真实标签转换为类别索引
y_true = y_test.argmax(axis=1)

3. 验证结果

现在可以打印真实标签和预测标签对比:

print("前10个真实标签:", y_true[:10])
print("前10个预测标签:", y_pred[:10])

关键说明

  • model.fit()返回的history对象只记录训练过程中的指标变化(比如精度、损失),不会自动生成或保存预测值,必须手动调用predict()方法。
  • 模型最后一层用了softmax激活,输出的是每个类别的概率值,所以需要用argmax(axis=1)提取概率最大的类别,得到和真实标签对应的索引值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:05:28