重要提示
您正在查看 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,