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


Python tf.nn.ctc_greedy_decoder用法及代碼示例


對輸入中給出的 logits 執行貪心解碼(最佳路徑)。

用法

tf.nn.ctc_greedy_decoder(
    inputs, sequence_length, merge_repeated=True, blank_index=None
)

參數

  • inputs 3-D float Tensor 大小為 [max_time, batch_size, num_classes] 。日誌。
  • sequence_length 包含序列長度的一維 int32 向量,大小為 [batch_size]
  • merge_repeated 布爾值。默認值:真。
  • blank_index (可選的)。默認值:num_classes - 1。定義用於空白標簽的類索引。負值將從 num_classes 開始,即 -1 將重現 ctc_greedy_decoder 使用 num_classes 的行為 - 1 對應於默認值。

返回

  • 一個元組 (decoded, neg_sum_logits) 其中
  • decoded single-element 列表。decoded[0]是一個SparseTensor包含解碼的輸出 s.t.:

    decoded.indices :索引矩陣 (total_decoded_outputs, 2) 。行存儲:[batch, time]

    decoded.values :值向量,大小 (total_decoded_outputs) 。向量存儲解碼的類。

    decoded.dense_shape :形狀矢量,大小 (2) 。形狀值為:[batch_size, max_decoded_length]

  • neg_sum_logits 一個 float 矩陣 (batch_size x 1) 包含,對於找到的序列,每個時間幀的最大 logit 總和的負數。

給定一個張量為 inputsblank_index 參數定義空白符號的類索引。

例如:

如果 blank_index 等於 1:

inf = float("inf")
logits = tf.constant([[[   0., -inf, -inf],
                       [ -2.3, -inf, -0.1]],
                      [[ -inf, -0.5, -inf],
                       [ -inf, -inf, -0.1]],
                      [[ -inf, -inf, -inf],
                       [ -0.1, -inf, -2.3]]])
seq_lens = tf.constant([2, 3])
outputs = tf.nn.ctc_greedy_decoder(
    logits,
    seq_lens,
    blank_index=1)

注意:

  • 無論 merge_repeated 的值如何,如果給定時間和批次的索引對應於 blank_index ,則不會發出新元素。
  • 默認 blank_index(num_classes - 1) ,除非被覆蓋。

如果 merge_repeatedTrue ,則合並輸出中的重複類。這意味著如果連續 logits 的最大索引相同,則僅發出其中的第一個。序列 A B B * B * B(其中 '*' 是空白標簽)變為

  • A B B B 如果 merge_repeated=True
  • A B B B B 如果 merge_repeated=False

相關用法


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