CTCGreedyDecoder

バージョン名: CTCGreedyDecoder-1

カテゴリー: シーケンス処理

簡単な説明: CTCGreedyDecoder は、入力 (最適パス) で指定されたロジットに対してグリードなデコードを実行します。

詳細な説明: 長さ \(T\) の入力シーケンス \(X\) が与えられた場合、CTCGreedyDecoder は、長さ \(T\) の文字シーケンス \(C\) の確率が次の式で与えられると仮定します。

\[p(C|X) = \prod_{t=1}^{T} p(c_{t}|X)\]

バッチ内のシーケンスは異なる長さを持ちます。シーケンス長は、2 番目の入力テンソル sequence_mask の値 1 および 0 としてコード化されます。値 sequence_mask[j, i] は、シーケンスのバッチ内のシーケンス i のインデックス i にシーケンスシンボルがあるかどうか指定します。j 番目の位置にシンボルがない場合は sequence_mask[j, i] = 0、そうでない場合は sequence_mask[j, i] = 1 です。j = 0 から始まり、シーケンス i ごとに独立して定義される特定のインデックス j = last_sequence_symbol まで、sequence_mass[j, i] は 1 に等しくなります。j > last_sequence_symbol の場合、sequence_mask[j, i] の値はすべて 0 です。

注: ctc_merge_repeated 属性の値に関係なく、特定のバッチおよびタイムステップの出力インデックスが blank_index に対応する場合、新しい要素は出力されません。

属性:

  • ctc_merge_repeated

    • 説明: ctc_merge_repeated は、CTC 計算中に繰り返しラベルをマージするフラグです。

    • 値の範囲: true または false

    • タイプ: boolean

    • デフォルト値: true

    • 必須: いいえ

入力:

  • 1: data - タイプ T_F および形状 [T, N, C] のシーケンスのバッチを含む入力テンソル。ここで、T はシーケンスの最大長、N はバッチサイズ、C はクラスの数です。必須。

  • 2: sequence_mask - 値 01、および形状 [T, N] が設定されたタイプ T_F のバッチ内の各シーケンスのシーケンスマスクを持つ入力テンソル。必須。

Output

  • 1: 最終的なシーケンス・クラス・インデックスを含む整数要素で満たされた、タイプ T_F および形状 [N, T, 1, 1] の出力テンソル。最終的なシーケンスはテンソルのサイズ T よりも短くなり、シーケンスクラスをコード化しないすべての要素は -1 で埋められます。

タイプ:

  • T_F: サポートされている浮動小数点タイプ。

例:

<layer ... type="CTCGreedyDecoder" ...>
    <data ctc_merge_repeated="true" />
    <input>
        <port id="0">
            <dim>20</dim>
            <dim>8</dim>
            <dim>128</dim>
       </port>
        <port id="1">
            <dim>20</dim>
            <dim>8</dim>
        </port>
    </input>
    <output>
        <port id="0">
            <dim>8</dim>
            <dim>20</dim>
            <dim>1</dim>
            <dim>1</dim>
       </port>
    </output>
</layer>