text sparse_softmax_cross_entropy_with_logits和softmax_cross_entropy_with_logits

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text sparse_softmax_cross_entropy_with_logits和softmax_cross_entropy_with_logits相关的知识,希望对你有一定的参考价值。

两者都是计算分类问题的softmax交叉熵损失,而两者使用的标签值labels的形式不同。
sparse_softmax_cross_entropy_with_logits: 使用的是实数来表示类别,数据类型为int16,int32,或者 int64,标签大小范围为[0,num_classes-1],标签的维度为[batch_size]大小。
softmax_cross_entropy_with_logits: 使用的是one-hot二进制码来表示类别,labels必须是one-hot形式的数据,数据类型为float16,float32,或者float64,维度为[batch_size, num_classes]。

实例
import tensorflow as tf
#batch_size = 2
labels = tf.constant([[0, 0, 0, 1],[0, 1, 0, 0]])
logits = tf.constant([[-3.4, 2.5, -1.2, 5.5],[-3.4, 2.5, -1.2, 5.5]])  #实际labels和logits可以是任意shape,可以是[batch_size,num_class]/[batch_size,num_steps,num_class]等,只要两者有相同的shape就可以

loss = tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=logits)
loss_s = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=tf.argmax(labels,1), logits=logits)

with tf.Session() as sess:  
    print "softmax loss:", sess.run(loss)
    print "sparse softmax loss:", sess.run(loss_s)

以上是关于text sparse_softmax_cross_entropy_with_logits和softmax_cross_entropy_with_logits的主要内容,如果未能解决你的问题,请参考以下文章

VB中 如何复制Text1.text的字体到剪贴板? 如何剪切?

VB 加减乘除

text-decoration:[ text-decoration-line ] || [ text-decoration-style ] || [ text-decoration-color ]

.text 和 .get_text() 之间的区别

javascript或css:如何隐藏标签内的文本中的任何数字,后跟点前缀“1.text”,“2.text”...“30.text”

Crystal报告如果这个或那个那么this2