在 PyTorch 中复制某些索引的张量元素
Copy tensor elements of certain indices in PyTorch
所需的操作在本质上与 torch.Tensor.index_copy
相似,但略有不同。
最好用一个例子来解释。
张量 A
具有我们将复制的原始值:
[10, 20, 30]
张量 B
的索引为 A
:
[0, 1, 0, 1, 2, 1]
张量 C
与 B
的长度相同,包含 A
:
的索引值
[10, 20, 10, 20, 30, 20]
在 PyTorch 中从 A
和 B
生成 C
而不使用循环的好方法是什么?
你试过只用 A 索引吗?
In [1]: import torch
In [2]: a = torch.tensor([20,30,40])
In [3]: b = torch.tensor([0,1,2,1,1,2,0,0,1,2])
In [4]: a[b]
Out[4]: tensor([20, 30, 40, 30, 30, 40, 20, 20, 30, 40])
所需的操作在本质上与 torch.Tensor.index_copy
相似,但略有不同。
最好用一个例子来解释。
张量 A
具有我们将复制的原始值:
[10, 20, 30]
张量 B
的索引为 A
:
[0, 1, 0, 1, 2, 1]
张量 C
与 B
的长度相同,包含 A
:
[10, 20, 10, 20, 30, 20]
在 PyTorch 中从 A
和 B
生成 C
而不使用循环的好方法是什么?
你试过只用 A 索引吗?
In [1]: import torch
In [2]: a = torch.tensor([20,30,40])
In [3]: b = torch.tensor([0,1,2,1,1,2,0,0,1,2])
In [4]: a[b]
Out[4]: tensor([20, 30, 40, 30, 30, 40, 20, 20, 30, 40])