如何在火炬中以预定义的顺序切割张量?

时间:2017-04-15 16:58:34

标签: lua torch

我有一个长度为10 train = torch.range(1,10)的数据集。我想以p = torch.randperm(10)定义的随机顺序对其进行切片。

要按范围切片,可以a = train[{{1,3}}]来获取前三个元素的元素。但是让我说我​​想要第2,第3和第9个元素。我可以在没有像这样运行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}}] }}]不起作用。

1 个答案:

答案 0 :(得分:1)

嗯,对于一个index,它需要longTensors:

train = torch.range(1,10)
p = torch.randperm(10):long()
print(train:index(p))