在Pytorch上重置随机初始化

时间:2020-04-01 16:13:20

标签: random neural-network pytorch

我想在前馈神经网络上做一些实验。为了进行公平的比较,我需要它们具有完全相同的随机初始化。我该怎么办?

是否有一种方法可以保存相同的初始权重,以便我可以训练网络,然后完全像以前一样重新初始化它?

我一直在尝试将初始参数保存在名为'init'的列表中,然后重新分配参数,但它不起作用:

i = 0 for name, param in model.named_parameters(): param = init[i] i += 1

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试通过以下方式随机播种:

torch.manual_seed(seed)
torch.manual_seed_all(seed)

请注意,您必须在每次模型初始化之前随机植入种子。如果这不起作用,请尝试以下操作:

torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False