如何为像素水平预测计算交叉熵

时间:2018-08-22 06:55:52

标签: machine-learning artificial-intelligence cross-entropy

我正在Keras中运行FCN,该FCN使用binary cross-entropy作为损失函数。但是,我不确定损失如何累积。

我知道损失是在像素级别上应用的,但是图像中每个像素的损失是否加起来就形成了每个图像一个损失?还是不是求和,而是求平均值?

此外,在批次中是否简单地对每个图像的损失求和(或者是其他操作)?

1 个答案:

答案 0 :(得分:1)

我假设您的问题是一个普遍的问题,并且是针对特定模型的(如果不能,您是否可以共享您的模型?)。

您是正确的,如果在像素级别使用交叉熵,则必须在所有像素上减少(求和或取平均值)结果才能得到单个值。

以下是张量流中卷积自动编码器的示例,其中此步骤是特定的:

https://github.com/udacity/deep-learning/blob/master/autoencoder/Convolutional_Autoencoder_Solution.ipynb

相关行是:

loss = tf.nn.sigmoid_cross_entropy_with_logits(labels=targets_, logits=logits)
cost = tf.reduce_mean(loss)

无论您采用成本函数的平均值还是总和都不会更改最小化器的值。但是,如果采用均值,则更改批次大小或图像大小时,成本函数的值在实验之间更容易比较。