Tensorflow 二元交叉熵Keras——它是如何聚合的?

Tensorflow 二元交叉熵Keras——它是如何聚合的?,tensorflow,keras,deep-learning,Tensorflow,Keras,Deep Learning,我最近一直在研究Keras中的二进制交叉熵损失 根据,损失定义为: −(ylog(p)+(1−y)log(1−p)) 然而,我想知道损失是如何在批处理级别汇总的。是求和还是求平均 谢谢 平均值。我们来看看, 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.losse

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

根据,损失定义为:

−(ylog(p)+(1−y)log(1−p))
然而,我想知道损失是如何在批处理级别汇总的。是求和还是求平均


谢谢

平均值。我们来看看,

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

谢谢这是一个非常好的演示。