我想在前馈神经网络上做一些实验。为了进行公平的比较,我需要它们具有完全相同的随机初始化。我该怎么办?
是否有一种方法可以保存相同的初始权重,以便我可以训练网络,然后完全像以前一样重新初始化它?
我一直在尝试将初始参数保存在名为'init'的列表中,然后重新分配参数,但它不起作用:
i = 0
for name, param in model.named_parameters():
param = init[i]
i += 1
有什么建议吗?
答案 0 :(得分:1)
您可以尝试通过以下方式随机播种:
torch.manual_seed(seed)
torch.manual_seed_all(seed)
请注意,您必须在每次模型初始化之前随机植入种子。如果这不起作用,请尝试以下操作:
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False