Keras 中的损失函数和批量大小

Posted

技术标签:

【中文标题】Keras 中的损失函数和批量大小【英文标题】:Loss function and batch size in Keras 【发布时间】:2021-07-23 11:24:42 【问题描述】:

对于分类任务,我们可以使用多种损失函数。 如果我只是使用类似的东西

model.compile loss=keras.losses.categorical_crossentropy, ....

这是否意味着损失在批量大小上进行了标准化?喜欢

loss = 1/m * sum_i sum_c [ y_i^c * ln(y^_i)^c ] 

wehre m 是批量大小,并且 i 是样本的索引 c 是类

或者损失的总和是batch size?

loss = sum_i  sum_c  [ y_i^c * ln(y^_i)^c ]  

【问题讨论】:

【参考方案1】:

我可以从 keras API 文档中找到批量优化的默认缩减设置为 AUTO,默认“几乎所有情况”为 SUM_OVER_BATCH_SIZE。这意味着损失是标量和除以批次中的元素数。

Link for tf.keras.losses Link for tf.keras.losses.Reduction

【讨论】:

我明白了,“损失是标量和除以批次中的元素数量”,我理解。并感谢您提供非常有用的信息链接。

以上是关于Keras 中的损失函数和批量大小的主要内容,如果未能解决你的问题,请参考以下文章

在 CNN 的 keras 自定义损失函数中操作数据

自定义 keras 损失函数二元交叉熵给出不正确的结果

keras中不同批量大小的损失计算

Keras 中的自定义损失函数(IoU 损失函数)和梯度误差?

keras 中像素级二进制分类的最佳损失函数

Keras 上的自定义损失函数