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

如何让TensorFlow CNN返回样本对应各类别的概率?

如何让TensorFlow CNN返回每个类别的概率

你的模型其实已经具备输出类别概率的能力,不需要修改模型结构或编译配置,只需要调整预测阶段的代码:

  • 你当前用np.argmax(model_0.predict(X_test_pad), axis=-1)仅提取了概率最大的类别索引,但model_0.predict(X_test_pad)本身返回的就是每个样本对应所有类别的概率矩阵(形状为(测试样本数, 类别数),这里就是(测试样本数, 3))。

直接修改预测代码即可获取概率:

# 获取每个样本对应3个类别的概率矩阵
y_pred_probs = model_0.predict(X_test_pad)

# 示例:打印第一个测试样本的各类别概率(百分比格式)
print(f"类别0概率:{y_pred_probs[0][0]:.2%}")
print(f"类别1概率:{y_pred_probs[0][1]:.2%}")
print(f"类别2概率:{y_pred_probs[0][2]:.2%}")

补充说明:

  • 你的模型最后一层使用了activation='softmax',这个激活函数会将输出值归一化,使得所有类别的概率之和为1,完全符合你需要的概率输出要求。
  • 损失函数选用sparse_categorical_crossentropy是匹配你的整数型标签格式,不会影响概率输出,无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 05:57:17