當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python mxnet.gluon.loss.CTCLoss用法及代碼示例

用法:

class mxnet.gluon.loss.CTCLoss(layout='NTC', label_layout='NT', weight=None, **kwargs)

參數

  • layout(str, default 'NTC') - 預測張量的布局。 ‘N’、‘T’、‘C’分別代表批量大小、序列長度和alphabet_size。
  • label_layout(str, default 'NT') - 標簽的布局。 “N”、“T”分別代表批量大小和序列長度。
  • weight(float or None) - 損失的全局標量權重。

基礎: mxnet.gluon.loss.Loss

聯結主義時間分類損失。

輸入:
  • pred:未歸一化的預測張量(在softmax之前)。它的形狀取決於layout.如果layout是“TNC”,pred 應該有形狀(sequence_length, batch_size, alphabet_size).請注意,在最後一個維度中,索引alphabet_size-1保留作為空白標簽供內部使用。所以alphabet_size是實際字母大小的一加。
  • label:從零開始的標簽張量。它的形狀取決於label_layout.如果label_layout是“TN”,label應該有形狀(label_sequence_length, batch_size).
  • pred_lengths: 可選(默認無),用於指定不同時每個條目的長度pred同一批次中的條目具有不同的長度。pred_lengths應該有形狀(batch_size,).
  • label_lengths: 可選(默認無),用於指定不同時每個條目的長度label同一批次中的條目具有不同的長度。label_lengths應該有形狀(batch_size,).
輸出:
  • loss: 輸出損失有形狀(batch_size,).

示例: 假設詞匯是[a, b, c],在一批中我們有三個序列‘ba’, ‘cbb’, and ‘abac’。我們可以將標簽索引為{‘a’: 0, ‘b’: 1, ‘c’: 2, blank: 3}.然後alphabet_size應為 4,其中標簽 3 保留供內部使用CTCLoss.然後我們需要用-1做一個長方形label張量:

[[1, 0, -1, -1],
 [2, 1,  1, -1],
 [0, 1,  0,  2]]

參考

Connectionist 時間分類:使用循環神經網絡標記未分段的序列數據

相關用法


注:本文由純淨天空篩選整理自apache.org大神的英文原創作品 mxnet.gluon.loss.CTCLoss。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。