使用DataParallel时,两条标记的行1)
和2)
是否等效?
model = torch.nn.DataParallel(net).cuda()
optim = torch.optim.Adam(net.parameters(), lr) # 1)
optim = torch.optim.Adam(net.module.parameters(), lr) # 2)
或者其中一个是否会产生奇怪的同步问题?
此外,在将params保存到文件时,使用DataParallel模块时首选哪一个?
model = torch.nn.DataParallel(net).cuda()
...
torch.save({
'epoch': epoch,
'state_dict': model.state_dict(), # 1)
'state_dict': model.module.state_dict(), # 2)
'best_loss': best_loss,
}, filename)