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 で、indices の形状が (data よりも) 大きくなります。

data = [ 
    [1, 7], 
    [4, 3], 
] 
indices = [ 
    [1, 1, 0], 
    [1, 0, 1], 
] 
axis = 1 
output = [ 
    [7, 7, 1], 
    [3, 4, 3], 
]

例 3 の indices の形状は (data よりも) 小さくなります。

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

    • 説明: どの軸が収集されるか。負の値は、次元を後ろから数えることを意味します。

    • 値の範囲: [-r, r-1] ここで、r = rank(data)

    • タイプ: int

    • 必須: はい

入力:

  • 1: T タイプのテンソル。これは rank >= 1 のテンソルです。必須。

  • 2: 入力と同じランクを持つ T_IND タイプのテンソル。すべてのインデックス値は範囲 [0, s-1] 内にあることが期待されます。ここで、sdata テンソルの 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>