UfX*_*pri 4 tensorflow softmax cross-entropy
我已经用随机数测试过“ softmax_cross_entropy_with_logits_v2”
import tensorflow as tf
x = tf.placeholder(tf.float32,shape=[None,5])
y = tf.placeholder(tf.float32,shape=[None,5])
softmax = tf.nn.softmax_cross_entropy_with_logits_v2(logits=x,labels=y)
with tf.Session() as sess:
feedx=[[0.1,0.2,0.3,0.4,0.5],[0.,0.,0.,0.,1.]]
feedy=[[1.,0.,0.,0.,0.],[0.,0.,0.,0.,1.]]
softmax = sess.run(softmax, feed_dict={x:feedx, y:feedy})
print("softmax", softmax)
Run Code Online (Sandbox Code Playgroud)
控制台“ softmax [1.8194163 0.9048325]”
我对该功能的了解是,此功能仅在logit和标签不同时才返回成本。
那为什么它甚至返回相同的值0.9048325?
tf.nn.softmax_cross_entropy_with_logits_v2起作用的方式是对x数组执行softmax 来将数组转换为概率:
i数组的索引在哪里。然后的输出tf.nn.softmax_cross_entropy_with_logits_v2将是-log(p)和标签之间的点积:
由于标签为0或1,因此只有标签等于1的项才起作用。因此,在您的第一个样本中,第一个索引的softmax概率为
和输出将是
您的第二个示例将有所不同,因为x[0]与有所不同x[1]。
| 归档时间: |
|
| 查看次数: |
605 次 |
| 最近记录: |