1. 程式人生 > >softmax_cross_entropy_with_logits函式原型解析

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放到一個函式裡計算,就是為了提高運算速度。