torch.gather()の一般的な理解

torch.gather(input、dim、index、out = None)→テンソル
入力(Tensor)–ソーステンソル
dim(int)–
インデックスインデックスの(LongTensor)–集約された要素のインデックス
(Tensor、オプション)–ターゲットテンソル

>>> t = torch.Tensor([[1,2]、[3,4]])

1 2
3 4
>>> torch.gather(t、1、torch.LongTensor([[0,0]、[1,0]])

1 1
4 3
[サイズ2x2のtorch.FloatTensor]


以下では、上記のコードは詳細に分析されます。
最初に、dim = 1または0、1biをそれぞれ調べる必要があります。これは、それぞれ異なる次元に対応しています。この例では、dim = 1は水平を意味するため、インデックスは列番号です。インデックスの最初の行[0,0]、最初の0は元のtの最初の列にインデックスが付けられているため、最初の行と最初の列の対応する要素は1で、2番目の0も最初の列、つまり最初の行の最初にインデックスが付けられます要素。インデックスの2行目は[1,0]で、1は元のtの2列目にインデックスが付けられ、0は最初の列にインデックスが3であるため、最終結果は次のようになります。

1 1
4 3

 

おすすめ

転載: blog.csdn.net/zl1107604962/article/details/103825678