为什么softmax_cross_entropy_with_logits_v2的返回成本相同

时间:2018-09-02 07:28:24

标签: tensorflow softmax cross-entropy

我已经测试了“ softmax_cross_entropy_with_logits_v2” 带有随机数

REMOTE_ADDR

控制台“ softmax [1.8194163 0.9048325]”

我对该功能的了解是 此功能仅在登录和标签不同时返回成本。

那为什么即使相同的值也返回0.9048325?

2 个答案:

答案 0 :(得分:5)

tf.nn.softmax_cross_entropy_with_logits_v2的工作方式是对x数组进行softmax运算,以将数组变成概率:

enter image description here

其中i是数组的索引。那么tf.nn.softmax_cross_entropy_with_logits_v2的输出将是-log(p)与标签之间的点积:

enter image description here

由于标签为0或1,因此只有标签等于1的项才起作用。因此,在您的第一个样本中,第一个索引的softmax概率为

enter image description here

输出将是

enter image description here

您的第二个示例将有所不同,因为x[0]x[1]不同。

答案 1 :(得分:0)

根据{{​​3}}的

tf.nn.softmax_cross_etnropy_with_logits_v2期望未缩放的输入,因为它在内部对softmax执行logits操作。因此,您的第二个输入[0,0,0,0,1]在内部被软最大为[0.15,0.15,0.15,0.15,0.4]之类的东西,然后对该logit和真实标签[0,0, 0,0,1]计算为您获得的值