首页 文章

tf.softmax_cross_entroy_with_logits的输出是否非标准化?

提问于
浏览
0

我实现了一个简单的cnn网络进行图像分类(二进制分类) . 我在Python中使用tensorflow . 我使用tf.softmax_cross_entropy_with logits作为成本函数 . 我从模型的输出层提供了带有非标准化logits的cost函数 . 该函数应该输出归一化概率,还是我错了?

在我的模型训练期间,我打印每个例子的成本 . 如果模型正确预测输出,则成本等于0.0,否则成本非常大,非标准化值) . 虽然在计算交叉熵之前函数'softmaxes'输入,为什么输出是非标准化的?

1 回答

  • 2

    你错误地使用softmax(你的网络的“虚拟”输出 - 交叉熵(你的损失函数) - 见下文) . Softmax是标准化的,但交叉熵不是 - 它可以采取任意高的值来惩罚不良预测 .

    当您将非标准化净输出与 tf.softmax_cross_entropy_with logits 结合使用时,实际上您没有观察到softmax输出:它在成本函数内处理并保持虚拟 . 要查看softmax,您可以使用 tf.nn.softmax 在网络的非标准化输出上显式计算它 .

相关问题