重要提示

您正在查看 NeMo 2.0 文档。此版本对 API 和新库 NeMo Run 进行了重大更改。我们目前正在将 NeMo 1.0 的所有功能移植到 2.0。有关先前版本或 2.0 中尚不可用的功能的文档,请参阅 NeMo 24.07 文档

损失函数#

class nemo.collections.common.losses.AggregatorLoss(*args: Any, **kwargs: Any)#

将多个损失函数求和为一个。

参数:
  • num_inputs – 输入损失函数的数量

  • weights – 用于合并损失函数的系数列表

__init__(
num_inputs: int = 2,
weights: List[float] | None = None,
)#
class nemo.collections.common.losses.CrossEntropyLoss(*args: Any, **kwargs: Any)#
__init__(
logits_ndim=2,
weight=None,
reduction='mean',
ignore_index=-100,
)#
参数:
  • logits_ndim (int) – logits 张量的维度(或秩)数

  • weight (list) – 给每个类别重新调整权重的列表

  • reduction (str) – 批次上的缩减类型

class nemo.collections.common.losses.MSELoss(*args: Any, **kwargs: Any)#
__init__(reduction: str = 'mean')#
参数:

reduction – 批次上的缩减类型

class nemo.collections.common.losses.SmoothedCrossEntropyLoss(*args: Any, **kwargs: Any)#

计算具有标签平滑的交叉熵损失,用于一批序列。

SmoothedCrossEntropyLoss: 1) 从损失计算中排除填充 tokens 2) 允许使用标签平滑正则化 3) 允许计算所需数量的最后 tokens 的损失 4) per_token_reduction - 如果为 False,则禁用每个 token 的缩减

参数:
  • label_smoothing (float) – 标签平滑正则化系数

  • predict_last_k (int) – 设置用于计算损失的最后 tokens 数量的参数,例如 0: (默认) 计算整个序列的损失 (例如,NMT) 1: 仅计算最后一个 token 的损失 (例如,LM 评估) 中间值允许控制评估时间(与批次数量成正比)和评估性能(与上下文 tokens 数量成正比)之间的权衡

  • pad_id (int) – 填充 id

  • eps (float) – 避免除以零的小 eps 数

__init__(
pad_id: int | None = None,
label_smoothing: float | None = 0.0,
predict_last_k: int | None = 0,
eps: float = 1e-06,
per_token_reduction: bool = True,
)#
class nemo.collections.common.losses.SpanningLoss(*args: Any, **kwargs: Any)#

实现 span 的开始和结束损失,例如用于问答。

__init__()#