我实现了一个简单的cnn网络的图像分类(二进制分类)。我在Python中使用tensorflow。我使用tf.softmax_cross_entropy_with逻辑作为成本函数。我从我的模型的输出层用未规范化的逻辑输入成本函数。函数应该输出规范化概率,还是我错了?
在培训我的模型,我是印刷成本的每一个例子。如果模型正确地预测了输出,则成本等于0.0,否则成本非常大,非规范化值)。在计算交叉熵前输入函数'softmaxes‘时,为什么输出是不归一化的?
发布于 2017-06-09 08:25:38
您将交叉熵(您的损失函数)与softmax (网络的“虚拟”输出--见下文)相混淆。Softmax是标准化的,但交叉熵不是--它可能需要任意高的值来惩罚错误的预测。
当您将非规范化的净输出与tf.softmax_cross_entropy_with logits结合使用时,实际上没有观察到softmax输出:它是在成本函数中处理的,并且仍然是虚拟的。要查看softmax,可以使用tf.nn.softmax对网络的非规范化输出进行明确的计算。
https://stackoverflow.com/questions/44452312
复制相似问题