softmax_cross_entropy_with_logits函式原型解析
阿新 • • 發佈:2018-12-09
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放到一個函式裡計算,就是為了提高運算速度。