如何在火炬中使用预定义的顺序对张量进行切片?
How to slice tensors with a predefined order in torch?
我有一个长度为 10 train = torch.range(1,10)
的数据集。我想按照 p = torch.randperm(10)
.
定义的随机顺序对其进行切片
要按范围获取切片,可以 a = train[{{1,3}}]
获取前三个元素的元素。但是可以说我想要第二、第三和第九个元素。我可以在不像这样运行 for 循环的情况下得到这个吗
for i = 1,3 do
print(a[{ p[i] }])
end
其中
p[1] = 2, p[2] = 3, p[3] = 9.
a = train[{{ p[{{1,3}}] }}]
不起作用。
好吧,对于一个 index,它需要 longTensors:
train = torch.range(1,10)
p = torch.randperm(10):long()
print(train:index(p))
我有一个长度为 10 train = torch.range(1,10)
的数据集。我想按照 p = torch.randperm(10)
.
要按范围获取切片,可以 a = train[{{1,3}}]
获取前三个元素的元素。但是可以说我想要第二、第三和第九个元素。我可以在不像这样运行 for 循环的情况下得到这个吗
for i = 1,3 do
print(a[{ p[i] }])
end
其中
p[1] = 2, p[2] = 3, p[3] = 9.
a = train[{{ p[{{1,3}}] }}]
不起作用。
好吧,对于一个 index,它需要 longTensors:
train = torch.range(1,10)
p = torch.randperm(10):long()
print(train:index(p))