我最近一直在研究Keras中的二进制交叉熵损失。
根据enter link description here,损失定义为:
mydict = {
'a': ['z', 'c'],
'b': ['y', 'c'],
'c': ['q', 'r', 'a', 'b']
}
但是我想知道损失如何在批次级别上汇总。是求和还是求平均值?
谢谢!
答案 0 :(得分:1)
平均。让我们看一下:
labels = tf.constant([0,1,0], dtype=tf.float32)
predictions = tf.constant([0.5,1.0,0.0], dtype=tf.float32)
sess = tf.Session()
loss = keras.losses.binary_crossentropy(y_true=labels, y_pred=predictions)
print(sess.run(loss))
# 0.23104914
print(loss)
# Tensor("Mean:0", shape=(), dtype=float32)
另外:
loss = tf.keras.backend.binary_crossentropy(target=labels, output=predictions)
print(np.mean(sess.run(loss)))
# 0.23104914