tf.nn.softmax_cross_entropy_with_logits()函數的使用方法


 

import tensorflow as tf

labels = [[0.2,0.3,0.5],
[0.1,0.6,0.3]]
logits = [[2,0.5,1],
[0.1,1,3]]

a=tf.nn.softmax([2,0.5,1]) # 此行代碼觀看softmax函數如何處理數據,結果表明是按照行進行處理,即ln2/(ln2+ln0.5+ln1)
result1 = tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=logits) # 可以發現此函數只將預測logits進行了softmax,這樣就可以不用對logits數據進行softmax了
logits_scaled = tf.nn.softmax(logits) # 對logits數據進行softmax
result2 = -tf.reduce_sum(labels*tf.log(logits_scaled),1)
result3 = tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=logits_scaled)

with tf.Session() as sess:
print(sess.run(a))
# print(sess.run(logits_scaled))
print(sess.run(result1))
print(sess.run(result2))
print(sess.run(result3))

 softmax實際就是將輸入函數帶到一個方程np.power(np.e,xi)/Σnp.power(np.e,xi)中得到,其代碼如下:

[2,0.5,1]
a=np.power(np.e,2)+np.power(np.e,0.5)+np.power(np.e,1)
print(np.power(np.e,2)/a)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM