如何在几天内训练神经网络?

时间:2018-07-25 21:07:36

标签: machine-learning gpu pytorch

我需要训练一个CNN,这将需要1-2天才能在远程访问的GPU服务器上进行训练。

为完成培训,我是否只需要将笔记本电脑放在过夜上,还是有办法保存培训状态并在第二天从那里恢复?

(在pytorch中实现)

2 个答案:

答案 0 :(得分:1)

如果您需要继续训练要保存的模型,则需要保存的不仅仅是模型。您还需要保存优化器的状态,时期,得分等。您可以这样做:

state = {
    'epoch': epoch,
    'state_dict': model.state_dict(),
    'optimizer': optimizer.state_dict(),
    ...
}

torch.save(state, filepath)

要继续训练,您将执行以下操作:state = torch.load(filepath),然后恢复每个对象的状态,如下所示:

model.load_state_dict(state['state_dict'])
optimizer.load_state_dict(stata['optimizer'])

由于您正在恢复训练,因此在加载时恢复状态后,请勿调用model.eval()。

要详细了解此内容或查看实际示例,请访问:https://www.programcreek.com/python/example/101175/torch.save

答案 1 :(得分:1)

我假设您使用ssh进入远程服务器。通过运行脚本来训练模型时,例如说$ python train.py,只需预先附加nohup

$ nohup python train.py

这告诉您退出ssh会话并关闭笔记本电脑时忽略挂断信号的过程。