2016-01-26 1 views
1

У меня есть тензор факела размером (1 x n x n x n), и я хотел бы случайным образом выбрать одно из последних 3 измерений, чтобы случайно нарезать s, а затем сделать. Например, он мог бы вывести тензоры с равной вероятностью;Torch - Случайно выберите размер тензора на срез

(1 x s x n x n) 
(1 x n x s x n) 
(1 x n x n x s) 

Я понимаю, что я мог бы просто сделать несколько, если другое заявление, но мне интересно, если есть опция «аккуратнее», используя функцию как torch.random(1,4), чтобы выбрать размер.

ответ

1

Предполагая, что вы хотите сузить блок элементов s случайным образом, из n элементов.

Давайте использовать :narrow.

n = 100 
s = 20 
x = torch.randn(1, n, n, n) 
y = x:narrow(torch.random(2, 4), torch.random(1, n - s + 1), s) 
+0

Спасибо! Не знал о узкой функции. – mattdns