[tensorflow損失函式系列]sparse_softmax_cross_entropy_with_logits
阿新 • • 發佈:2019-01-23
sparse_softmax_cross_entropy_with_logits
原創文章,請勿轉載!!
定義
sparse_softmax_cross_entropy_with_logits(_sentinel=None, labels=None, logits=None,name=None):
說明
此函式大致與tf_nn_softmax_cross_entropy_with_logits的計算方式相同,
適用於每個類別相互獨立且排斥的情況,一幅圖只能屬於一類,而不能同時包含一條狗和一隻大象
但是在對於labels的處理上有不同之處,labels從shape來說此函式要求shape為[batch_size],
labels[i]是[0,num_classes)的一個索引, type為int32或int64,即labels限定了是一個一階tensor,
並且取值範圍只能在分類數之內,表示一個物件只能屬於一個類別
引數
_sentinel:本質上是不用的引數,不用填
logits:shape為[batch_size,num_classes],type為float32或float64
name:操作的名字,可填可不填
示例程式碼
import tensorflow as tf
input_data = tf.Variable([[0.2, 0.1, 0.9], [0.3, 0.4, 0.6]], dtype=tf.float32)
output = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=input_data, labels=[0 , 2])
with tf.Session() as sess:
init = tf.global_variables_initializer()
sess.run(init)
print(sess.run(output))
# [ 1.36573195 0.93983102]