PyTorch中的CrossEntropyLoss()

💡 原文英文,约600词,阅读约需2分钟。
📝

内容提要

本文介绍了L1 Loss(MAE)、L2 Loss(MSE)、Huber Loss、BCE和Cross Entropy Loss的概念和用法。Cross Entropy Loss可以从输入张量和目标张量中计算出0D或更高维的零个或多个值(浮点数)。初始化参数包括权重、忽略索引、减少方式和标签平滑等。示例展示了使用类索引和类概率作为目标张量的情况。

🎯

关键要点

  • 本文介绍了L1 Loss(MAE)、L2 Loss(MSE)、Huber Loss、BCE和Cross Entropy Loss的概念和用法。

  • Cross Entropy Loss可以从输入张量和目标张量中计算出0D或更高维的零个或多个值(浮点数)。

  • 初始化参数包括权重、忽略索引、减少方式和标签平滑等。

  • 示例展示了使用类索引和类概率作为目标张量的情况。

  • 初始化的第一个参数是权重(可选,默认值为None,类型为浮点数的张量)。

  • ignore_index参数用于初始化(可选,默认值为-100,类型为整数)。

  • reduction参数用于初始化(可选,默认值为'mean',类型为字符串),可选择'none'、'mean'或'sum'。

  • label_smoothing参数用于初始化(可选,默认值为0.0,类型为浮点数),必须在[0, 1]之间。

  • 输入张量(必需,类型为浮点数的张量)可以是1D或更高维的张量,softmax()在内部使用,不需要手动调用。

  • 目标张量(必需,类型为类索引的整数张量或类概率的浮点数张量)可以是0D或1D张量。

  • 如果目标张量的大小与输入张量不同,则视为类索引;如果相同,则视为类概率,且应在[0, 1]之间。

  • 空的1D或更高维的输入和目标张量在reduction='mean'时返回nan。

  • 空的1D或更高维的输入和目标张量在reduction='sum'或'reduction='none'时返回-0。

  • 提供了使用类索引和类概率的示例代码,展示了如何使用CrossEntropyLoss。

延伸问答

Cross Entropy Loss的主要用途是什么?

Cross Entropy Loss用于计算模型输出与目标之间的差异,常用于分类任务。

Cross Entropy Loss的初始化参数有哪些?

初始化参数包括权重、ignore_index、reduction和label_smoothing等。

如何处理目标张量与输入张量大小不同时的情况?

如果目标张量的大小与输入张量不同,则视为类索引;如果相同,则视为类概率。

在使用Cross Entropy Loss时,如何设置标签平滑?

标签平滑通过label_smoothing参数设置,值必须在[0, 1]之间。

Cross Entropy Loss在空输入时的返回值是什么?

空的输入和目标张量在reduction='mean'时返回nan,在reduction='sum'或'reduction='none'时返回-0。

Cross Entropy Loss如何处理类概率的目标张量?

类概率的目标张量应与输入张量大小相同,并且值应在[0, 1]之间。

🏷️

标签

➡️

继续阅读