Roll¶
バージョン名: Roll-7
カテゴリー: データ移動
簡単な説明: Roll 操作は、指定された軸に沿ってテンソルの要素をシフトします。
詳細な説明: Roll は、最初の入力テンソルと同じ形状を持ち、axes テンソルで指定された次元に沿って要素がシフトされたテンソルを生成します。シフトサイズは shift 入力テンソルで指定されます。最後の位置を超えてシフトされた要素は、最初の位置から同じ順序で追加されます。
例 1 - shift
= 1、axes
= 0 の Roll 出力:
data = [[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]]
output = [[10, 11, 12],
[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9]]
例 2 - shift
= [-1, 2]、axes
= [0, 1] の Roll 出力:
data = [[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]]
output = [[ 5, 6, 4],
[ 8, 9, 7],
[11, 12, 10],
[ 2, 3, 1]]
例 3 - shift
= [1, 2, 1]、axes
= [0, 1, 0] の Roll 出力:
data = [[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]]
output = [[ 8, 9, 7],
[11, 12, 10],
[ 2, 3, 1],
[ 5, 6, 4]]
属性:
利用可能な属性はありません。
入力:
1:
data
T タイプのテンソル。必須。2: T_IND_1 タイプの
shift
スカラーまたは 1D テンソル。data
テンソルの要素をシフトする桁数を指定します。shift
がスカラーの場合、axes
テンソルで指定された各次元は同じshift
値でロールされます。shift
が 1D テンソルの場合、axes
は同じサイズの 1D テンソルである必要があり、axes
テンソルの各次元はshift
テンソルの対応する値によってロールされます。shift
の値が正の場合、要素は正に (より大きなインデックスに向かって) シフトされます。それ以外の場合、要素は負の方向に (小さいインデックスに向かって) シフトされます。必須。3:
axes
は T_IND_2 タイプのスカラーまたは 1D テンソルです。要素をシフトする軸を指定します。同じ軸が複数回参照される場合、その軸の合計シフトは、その軸に属するすべてのシフトの合計になります。axes
に負の値がある場合、軸インデックスは次の式を使用して計算されます:N_dims + axis
、ここで、N_dims
-data
テンソルの次元の合計数、axis
-axes
テンソルからの負の軸インデックス。必須。
出力:
1:
data
テンソルと等しい形状とタイプを持つ出力テンソル。
タイプ:
T: サポートされるタイプ。
T_IND_1:
int32
またはint64
。T_IND_2:
int32
またはint64
。
例:
例 1: “shift” と “axes” は 1D テンソルです。
<layer ... type="Roll">
<input>
<port id="0">
<dim>3</dim>
<dim>10</dim>
<dim>100</dim>
<dim>200</dim>
</port>
<port id="1">
<dim>2</dim>
</port>
<port id="2">
<dim>2</dim> <!-- shifting along specified axes with the corresponding shift values -->
</port>
</input>
<output>
<port id="0">
<dim>3</dim>
<dim>10</dim>
<dim>100</dim>
<dim>200</dim>
</port>
</output>
</layer>
例 2: “shift” 値はスカラーであり、複数の軸が指定されます。
<layer ... type="Roll">
<input>
<port id="0">
<dim>3</dim>
<dim>10</dim>
<dim>100</dim>
<dim>200</dim>
</port>
<port id="1">
<dim>1</dim>
</port>
<port id="2">
<dim>2</dim> <!-- shifting along specified axes with the same shift value -->
</port>
</input>
<output>
<port id="0">
<dim>3</dim>
<dim>10</dim>
<dim>100</dim>
<dim>200</dim>
</port>
</output>
</layer>