二进制交叉熵Keras-如何聚集?

时间:2019-03-25 10:47:18

标签: tensorflow keras deep-learning

我最近一直在研究Keras中的二进制交叉熵损失。

根据enter link description here,损失定义为:

mydict = {
'a': ['z', 'c'],
'b': ['y', 'c'],
'c': ['q', 'r', 'a', 'b']
}

但是我想知道损失如何在批次级别上汇总。是求和还是求平均值?

谢谢!

1 个答案:

答案 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