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 中的损失函数和批量大小的主要内容,如果未能解决你的问题,请参考以下文章