Pytorch:随机抽样一个向量

时间:2018-01-05 19:16:07

标签: pytorch

我需要在pytorch中随机地对一个向量进行子采样。 Matlab中的等价物就像

sample_size = 5
a = rand(10,1)
idx = randperm(10)
b = a(idx(1:sample_size))

pytorch有类似的功能吗?

我正在尝试随机抽样我的预测和目标向量来计算损失。

2 个答案:

答案 0 :(得分:0)

我想我已经发现了一些有用的东西:

sample_size = 5
a = torch.randn(10)
b = torch.randperm(10)
a = a.index_select(0,b)
a = a[0:sample_size] 

答案 1 :(得分:0)

或者您可以简单地做到:

sample_size = 5
a = torch.randn(10)
b = torch.randperm(10)
a_sample = a[b[0:sample_size]]

就是像您的问题一样进行采样而无需替换。

或者如果您想更换样品:

sample_size = 5
a = torch.randn(10)
b = torch.randint(0, 10, size=(sample_size,))
a_sample = a[b]