我有一个大小为(1 x n x n x n)
的火炬张量,我想随机选择最后3个维度中的一个随机切片,然后再做。例如,它可以以相同的概率输出以下张量;
(1 x s x n x n)
(1 x n x s x n)
(1 x n x n x s)
我意识到我可以做一些if else语句,但我很好奇是否有一个“neater”选项使用类似torch.random(1,4)
的函数来选择维度。
答案 0 :(得分:1)
假设您想要从n个元素中随机缩小s元素块。
让我们使用: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)