GatherElements¶
バージョン名: GatherElements-6
カテゴリー: データ移動
簡単な説明: GatherElements は、indices
テンソルで指定された位置にある入力 data
テンソルから要素を取得します。
詳細な説明: GatherElements は、indices
テンソルで指定された位置にある data
テンソルから要素を取得します。data
テンソルと indices
テンソルは同じランク r >= 1
を持ちます。オプション
属性 axis
は、indices
で指定されたインデックスを持つ要素がどの軸に沿って取得されるかを決定します。indices
テンソルは、axis
の次元を除いて data
テンソルと同じ形状を持ちます。出力は indices
テンソルの各要素の値 (data
テンソルから収集された) で構成され、indices
と同じ形状になります。
例えば、3D の場合 (r = 3
)、出力は次の方程式によって決定されます。
out[i][j][k] = data[indices[i][j][k]][j][k] if axis = 0
out[i][j][k] = data[i][indices[i][j][k]][k] if axis = 1
out[i][j][k] = data[i][j][indices[i][j][k]] if axis = 2
例 1 - 具体的な値を含む:
data = [
[1, 2],
[3, 4],
]
indices = [
[0, 1],
[0, 0],
]
axis = 0
output = [
[1, 4],
[1, 2],
]
例 2 - axis
= 1 で、data
よりも大きな形状の indices
:
data = [
[1, 7],
[4, 3],
]
indices = [
[1, 1, 0],
[1, 0, 1],
]
axis = 1
output = [
[7, 7, 1],
[3, 4, 3],
]
例 3 - data
よりも小さな形状の indices
:
data = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
indices = [
[1, 0, 1],
[1, 2, 0],
]
axis = 0
output = [
[4, 2, 6],
[4, 8, 3],
]
属性:
-
axis
説明: Which axis to gather on.負の値は、次元を後ろから数えることを意味します。
値の範囲:
[-r, r-1]
、ここでr = rank(data)
です。タイプ: int
必須: はい
入力:
1: T タイプのテンソル。これは
rank >= 1
のテンソルです。必須。2: 入力と同じランクを持つ T_IND タイプのテンソル。すべてのインデックス値は範囲
[0, s-1]
内にあることが期待されます。ここで、s
はdata
テンソルのaxis
次元に沿ったサイズです。必須。
出力:
1: T タイプの収集された値を持つテンソル。テンソルは
indices
と同じ形状を持っています。
タイプ:
T: サポートされるタイプ。
T_IND:
int32
またはint64
。
例:
<... type="GatherElements" ...>
<data axis="1" />
<input>
<port id="0">
<dim>3</dim>
<dim>7</dim>
<dim>5</dim>
</port>
<port id="1">
<dim>3</dim>
<dim>10</dim>
<dim>5</dim>
</port>
</input>
<output>
<port id="2">
<dim>3</dim>
<dim>10</dim>
<dim>5</dim>
</port>
</output>
</layer>