關於cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits的思考

今天在學習過程中產生了一個小疑問,現記錄如下:

在利用TensorFlow搭建圖像分類器中  cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(),
這個函數把交叉熵和softmax函數寫在一起,是可以提高運算速度嗎?還是僅僅把減少代碼行數呢?

我以前的做法是先用softmax求出需要被識別的物體在每個類別的概率,再計算交叉熵。

因爲softmax層並不會改變最終的分類結果(排序),所以tensorflow將softmax層與交叉熵函數進行封裝,形成一個函數方便計算:tf.nn.softmax_cross_entropy_with_logits(logits= , labels=)。

但是我剛剛說的函數在這基礎上多了一個sparse。

我的理解是原本是拿獨熱碼計算比如要識別的東西是第5個,就是000010(這是沒有sparse的情形)

然後有了sparse的話就是5,是直接用標籤計算交叉熵所以可以加速計算進程,不過這樣應該只適用於只有一個分類結果的情形。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章