我需要在pytorch中随机地对一个向量进行子采样。 Matlab中的等价物就像
sample_size = 5
a = rand(10,1)
idx = randperm(10)
b = a(idx(1:sample_size))
pytorch有类似的功能吗?
我正在尝试随机抽样我的预测和目标向量来计算损失。
答案 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]