OneHot#
バージョン名: OneHot-1
カテゴリー: シーケンス処理
簡単な説明: OneHot は、指定されたインデックスを持つ出力テンソルの要素を on_value に設定し、他のすべての位置を off_value で埋めます。
詳細な説明
OneHot は、最初の入力 indices としてランク N のテンソルを取得し、軸位置の新しい次元で元のテンソルを拡張してランク N+1 のテンソルを生成します。出力テンソルには 2 つのスカラー値が設定されます: 3 番目の入力から取得される on_value と 4 番目の入力から取得される off_value。総数は次のようにして作成されます:
output[:, ... ,:, i, :, ... ,:] = on_value if (indices[:, ..., :, :, ..., :] == i) else off_valueここで、i は output 形状の axis 位置にあり、[0, ..., depth-1] の範囲の値を保持します。
indices の一部の要素が depth 以上である場合、それは適切な形式の操作です。この場合、対応する出力行には off_value が設定されます。
入力スカラーの on_value と off_value のタイプは、サポートされているタイプと一致し等しくなければなりません。出力テンソルのタイプは on_value または off_value から派生し、すべて同じタイプを持ちます。
属性:
axis
説明: axis は、ワンホット値を入力する出力形状内の新しい軸の位置です。
値の範囲: 整数。負の値は、次元を端から数えることを意味します。
タイプ:
int必須: はい
入力:
1:
indices: 負ではないインデックスを持つ T1 タイプの入力テンソル、負のインデックスの動作は未定義です。0D でも構いません。必須。2:
depth: クラスの数、つまりワンホット次元のサイズを指定する T1 タイプの正のスカラー (0D テンソル)。必須。3:
on_value:indicesで指定された出力テンソルの位置を埋める T2 タイプのスカラー (0D テンソル)。必須。4:
off_value:indicesで表されない位置を埋める T2 タイプのスカラー (0D テンソル)。必須。
出力:
1: T2 タイプの
N+1ランクのテンソル。Nは入力テンソルindicesのランクです。サイズdepthの新しい軸が次元axisに挿入されます。
タイプ
T1:
int32またはint64。T2: サポートされている任意のデータタイプ。
例
<layer ... type="OneHot" ...>
<data axis="-1"/>
<input>
<port id="0"> <!-- インデックス値: [0, 3, 1, 2] -->
<dim>4</dim>
</port>
<port id="1"> <!-- 深度値: 3 -->
</port>
<port id="2"> <!-- on_value 1 -->
</port>
<port id="3"> <!-- off_value 2 -->
</port>
</input>
<output>
<port id="0"> <!-- 出力値 # [[1, 2, 2], [2, 2, 2], [2, 1, 2], [2, 2, 1]] -->
<dim>4</dim>
<dim>3</dim>
</port>
</output>
</layer> <layer ... type="OneHot" ...>
<data axis="1"/>
<input>
<port id="0"> <!-- インデックス値: [[0, 3, 1], [1, 2, 4]] -->
<dim>2</dim>
<dim>3</dim>
</port>
<port id="1">
<!-- 深度値: 3 -->
</port>
<port id="2"> <!-- on_value 1 -->
</port>
<port id="3"> <!-- off_value 0 -->
</port>
</input>
<output>
<port id="0"> <!-- 出力値: [[[1, 0, 0], [0, 0, 1], [0, 0, 0]], -->
<dim>2</dim> <!-- [[0, 0, 0], [1, 0, 0], [0, 1, 0]]] -->
<dim>3</dim>
<dim>3</dim>
</port>
</output>
</layer>