快捷鍵

RNNTLoss

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

使用遞迴神經網路的序列轉錄 [[Graves, 2012](../references.html#id18)] 計算 RNN Transducer 損失。

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

RNN Transducer 損失透過定義所有長度的輸出序列的分佈,並聯合建模輸入-輸出和輸出-輸出依賴關係,來擴展 CTC 損失。

參數:
  • blank (int, 選用) – 空白標籤 (預設:-1)

  • clamp (float, 選用) – 梯度鉗制 (預設:-1)

  • reduction (string, 選用) – 指定要套用到輸出的縮減方式:"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)[原始碼]
參數:
  • logits (Tensor) – 維度為 (batch, max seq length, max target length + 1, class) 的 Tensor,包含來自 joiner 的輸出

  • targets (Tensor) – 維度為 (batch, max target length) 的 Tensor,包含以零填充的目標

  • logit_lengths (Tensor) – 維度為 (batch) 的 Tensor,包含來自編碼器的每個序列的長度

  • target_lengths (Tensor) – 維度為 (batch) 的 Tensor,包含每個序列的目標長度

回傳:

套用縮減選項的損失。如果 reduction"none",則大小為 (batch),否則為純量。

回傳類型:

Tensor

文件

存取 PyTorch 的完整開發者文件

檢視文件

教學

取得初學者和進階開發者的深入教學

檢視教學

資源

尋找開發資源並獲得問題解答

檢視資源