Pytorch生成器与手动种子导致不同的随机数

z2acfund  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(160)

我期望从多项分布中抽取的数据也是可重复的。为什么我会得到这种行为,我该如何修复?
我试图从一个多项分布绘制,并希望绘制是可复制的。

ulydmbyx

ulydmbyx1#

将generator传递给torch.multinomial只会告诉pytorch使用哪个generator,它不会重置其状态。
试试这个

import torch
g = torch.Generator().manual_seed(1)
p = torch.rand(3, generator=g)
initial_state = g.get_state()
print(torch.multinomial(p, num_samples=10, replacement=True, generator=g))
g.set_state(initial_state)
print(torch.multinomial(p, num_samples=10, replacement=True, generator=g))

相关问题