快捷方式

RNNTLoss

class torchaudio.transforms.RNNTLoss(blank: int = -1, clamp: float = -1.0, reduction: str = 'mean', fused_log_softmax: bool = True)[source]

计算 *使用循环神经网络进行序列转导* [id1] 中所述的 RNN 转导损失(RNN Transducer loss)。

This feature supports the following devices: CPU, CUDA This API supports the following properties: Autograd, TorchScript

RNN 转导损失通过定义所有长度输出序列的分布,并联合建模输入-输出和输出-输出依赖关系,扩展了 CTC 损失。

参数:
  • blank (int, 可选) – 空白标签 (默认值: -1)

  • clamp (float, 可选) – 用于梯度的钳位 (默认值: -1)

  • reduction (字符串, 可选) – 指定应用于输出的归约方式:"none" | "mean" | "sum"。(默认值: "mean")

  • fused_log_softmax (bool) – 如果在损失函数外部调用 log_softmax,则设为 False (默认值: True)

示例
>>> # Hypothetical values
>>> logits = torch.tensor([[[[0.1, 0.6, 0.1, 0.1, 0.1],
>>>                          [0.1, 0.1, 0.6, 0.1, 0.1],
>>>                          [0.1, 0.1, 0.2, 0.8, 0.1]],
>>>                         [[0.1, 0.6, 0.1, 0.1, 0.1],
>>>                          [0.1, 0.1, 0.2, 0.1, 0.1],
>>>                          [0.7, 0.1, 0.2, 0.1, 0.1]]]],
>>>                       dtype=torch.float32,
>>>                       requires_grad=True)
>>> targets = torch.tensor([[1, 2]], dtype=torch.int)
>>> logit_lengths = torch.tensor([2], dtype=torch.int)
>>> target_lengths = torch.tensor([2], dtype=torch.int)
>>> transform = transforms.RNNTLoss(blank=0)
>>> loss = transform(logits, targets, logit_lengths, target_lengths)
>>> loss.backward()
forward(logits: Tensor, targets: Tensor, logit_lengths: Tensor, target_lengths: Tensor)[source]
参数:
  • logits (Tensor) – 维度为 (batch, 最大序列长度, 最大目标长度 + 1, 类别) 的 Tensor,包含来自连接器(joiner)的输出

  • targets (Tensor) – 维度为 (batch, 最大目标长度) 的 Tensor,包含零填充的目标序列

  • logit_lengths (Tensor) – 维度为 (batch) 的 Tensor,包含来自编码器的每个序列的长度

  • target_lengths (Tensor) – 维度为 (batch) 的 Tensor,包含每个序列的目标长度

返回:

应用了归约选项的损失。如果 reduction"none",则形状为 (batch),否则为标量。

返回类型:

Tensor

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得问题解答

查看资源