2017-04-15 64 views
0

我有一個數據集長度爲10 train = torch.range(1,10)。我想按照p = torch.randperm(10)定義的隨機順序對其進行分片。如何在火炬中以預定義順序切片張量?

要獲得按範圍切片,可以執行a = train[{{1,3}}]以獲取前三個元素的元素。但讓我們說我想要第二,第三和第九個元素。我能得到這個沒有這樣

for i = 1,3 do 
    print(a[{ p[i] }]) 
end 

其中

p[1] = 2, p[2] = 3, p[3] = 9. 

a = train[{{ p[{{1,3}}] }}]不起作用操作一個for循環。

+0

[?火炬,如何選擇一個張量的一個子集(的可能的複製http://stackoverflow.com/questions/36089868 /火炬如何對選擇-A-子集的-A-張量) – Dimitry

回答

1

那麼,對於一個有index,但是它需要longTensors:

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