【问题标题】:How to save and load random number generator state in Pytorch?如何在 Pytorch 中保存和加载随机数生成器状态?
【发布时间】:2019-08-01 12:28:50
【问题描述】:

我正在 Pytorch 中训练一个深度学习模型,并希望以一种确定性的方式训练我的模型。 正如this官方指南中所写,我设置了这样的随机种子:

np.random.seed(0)
torch.manual_seed(0)
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False

现在,我的训练时间很长,我想保存,然后加载所有内容,包括 RNG。我使用torch.savetorch.load_state_dict 作为模型和优化器。

如何保存和加载随机数生成器?

【问题讨论】:

    标签: pytorch random-seed reproducible-research


    【解决方案1】:

    您可以使用torch.get_rng_statetorch.set_rng_state

    调用torch.get_rng_state 时,您将获得作为torch.ByteTensor 的随机数生成器状态。

    然后您可以将此张量保存在文件中的某个位置,稍后您可以加载并使用torch.set_rng_state 设置随机数生成器状态。


    当使用numpy 时,您当然可以使用:
    numpy.random.get_statenumpy.random.set_state

    【讨论】:

    • 谢谢!你知道如何用 Numpy RNG 做同样的事情吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2011-01-22
    相关资源
    最近更新 更多