如何批量设置张量索引的值
How to set value at Tensor index in batch
我有一个批量大小为 N 的张量。
t = [[...], [....], [....] .... ]
在第二个张量索引中,我有 N 个要在每个张量中更改的元素索引
indices = [i0, i1, i2 .... ]
所以我想通过
从 t
创建 t0
t0 = [[ set X at i0 ], [ set X at i1 ], [ set X at i2 ] .... ]
我怎样才能在 Torch 做到这一点?
您似乎在寻找以下内容:
t[torch.arange(N),indices]
举个例子:
import torch
a = torch.zeros((3,3))
a[torch.arange(3),[0,2,1]] = 0.2
print(a)
输出:
tensor([[0.2000, 0.0000, 0.0000],
[0.0000, 0.0000, 0.2000],
[0.0000, 0.2000, 0.0000]])
注意:此行为与 NumPy 的相同integer array indexing
我有一个批量大小为 N 的张量。
t = [[...], [....], [....] .... ]
在第二个张量索引中,我有 N 个要在每个张量中更改的元素索引
indices = [i0, i1, i2 .... ]
所以我想通过
从t
创建 t0
t0 = [[ set X at i0 ], [ set X at i1 ], [ set X at i2 ] .... ]
我怎样才能在 Torch 做到这一点?
您似乎在寻找以下内容:
t[torch.arange(N),indices]
举个例子:
import torch
a = torch.zeros((3,3))
a[torch.arange(3),[0,2,1]] = 0.2
print(a)
输出:
tensor([[0.2000, 0.0000, 0.0000],
[0.0000, 0.0000, 0.2000],
[0.0000, 0.2000, 0.0000]])
注意:此行为与 NumPy 的相同integer array indexing