ScatterElementsUpdate

バージョン名: ScatterElementsUpdate-3

カテゴリー: データ移動

簡単な説明: 2 番目と 3 番目の入力テンソルで指定された更新された要素を含む最初の入力テンソルのコピーを作成します。

詳細な説明: 更新内の各エントリーについて、data 内のターゲット・インデックスは、indices 内の対応するエントリーとエントリー自体のインデックスを組み合わせることによって取得されます。axis に等しい次元のインデックス値は、indices 内の対応するエントリーの値から取得され、axis と等しくない次元のインデックス値は、エントリー自体のインデックスから取得されます。

例えば、3D テンソルの場合、[i][j][k] エントリーに対応する更新は次のように実行されます。

output[indices[i][j][k]][j][k] = updates[i][j][k] if axis = 0,
output[i][indices[i][j][k]][k] = updates[i][j][k] if axis = 1,
output[i][j][indices[i][j][k]] = updates[i][j][k] if axis = 2

update テンソル次元は、対応する data テンソル次元以下です。

属性: ScatterElementsUpdate には属性がありません。

入力:

  • 1: 任意のランク r およびタイプ Tdata テンソル。必須。

  • 2: T_IND タイプのインデックスを持つ indices テンソル。テンソルのランクは data テンソルのランクと同じです。すべてのインデックス値は、サイズ s の軸に沿った範囲 [0, s - 1] 内にあることが期待されます。複数のインデックスが次を指している場合:

出力場所が同じ場合、値を更新する順序は定義されません。インデックスが存在しない出力テンソル要素を指している、または負の場合、例外が発生します。必須。

  • 3: indices テンソルの形状と等しい形状の T タイプのテンソルを更新します。必須。

  • 4: スカラーを使用した axis テンソル、または散乱の軸を指定するタイプ T_AXIS の 1 つの要素を使用した 1D テンソル。

値の範囲は [-r, r - 1] で、rdata のランクです。必須。

出力:

  • 1: T タイプの data テンソルと等しい形状を持つテンソル。

タイプ:

  • T: 任意の数値タイプ。

  • T_IND: 任意の整数値タイプ。

  • T_AXIS: 任意の整数値タイプ。

例:

 <layer ... type="ScatterElementsUpdate">
     <input>
         <port id="0">
             <dim>1000</dim>
             <dim>256</dim>
             <dim>7</dim>
             <dim>7</dim>
         </port>
         <port id="1">
             <dim>125</dim>
             <dim>20</dim>
             <dim>7</dim>
             <dim>6</dim>
         </port>
         <port id="2">
             <dim>125</dim>
             <dim>20</dim>
             <dim>7</dim>
             <dim>6</dim>
         </port>
         <port id="3">     <!-- value [0] -->
             <dim>1</dim>
         </port>
     </input>
     <output>
         <port id="4" precision="FP32">
             <dim>1000</dim>
             <dim>256</dim>
             <dim>7</dim>
             <dim>7</dim>
         </port>
     </output>
 </layer>