tensorflow tf.softmax_cross_entropy相關問題
阿新 • • 發佈:2018-12-03
output = tf.constant([1., 3., 2.]) output_ = tf.nn.softmax(output) y = tf.constant([1., 3., 2.]) loss1 = tf.losses.softmax_cross_entropy(y, output) loss2 = -tf.reduce_sum(y * tf.log(output_)) print(loss1) print(loss2) #tf.Tensor(6.4456363, shape=(), dtype=float32) #tf.Tensor(6.4456363, shape=(), dtype=float32)
可以從上面簡單的程式碼看出tf.softmax_cross_entropy是先將out進行類似softmax(為什麼是類似知乎上有一定說明,但是這裡實際呼叫的是softmax_cross_entropy_with_logits_v2(tf 1.9),跟softmax_cross_entropy_with_logits應該並無太大差別,這裡沒有深究)的操作,然後再進行cross entropy的操作。
問題:今天發現訓練的模型train loss一直不動,發現是我的tf.losses.softmax_cross_entropy(y, output)兩個引數寫反。