TensorFlow—softmax_cross_entropy_with_logits函數詳解


softmax_cross_entropy_with_logits函數原型:

 

tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=pred, name=None)
函數功能:計算最后一層是softmax層的cross entropy,把softmax計算與cross entropy計算放到一起了,用一個函數來實現,用來提高程序的運行速度。

參數name:該操作的name

參數labels:shape是[batch_size, num_classes],神經網絡期望輸出。

 

參數logits:shape是[batch_size, num_classes] ,神經網絡最后一層的輸入。

具體的執行流程大概分為兩步:

第一步是對網絡最后一層的輸出做一個softmax,這一步通常是求取輸出屬於某一類的概率,對於單樣本而言,輸出就是一個 num_classes 大小的向量([Y1,Y2,Y3,...]其中Y1,Y2,Y3,...分別代表了是屬於該類的概率)


第二步是softmax的輸出向量[Y1,Y2,Y3,...]和樣本的實際標簽做一個交叉熵,


指實際標簽中第i個的值;

softmax的輸出向量[Y1,Y2,Y3...]中,第i個元素的值。

 

總之,tensorflow之所以把softmax和cross entropy放到一個函數里計算,就是為了提高運算速度。

 

轉載:https://blog.csdn.net/qiqiaiairen/article/details/53169002


免責聲明!

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



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