[英]How to train neural network over days?
我需要訓練一個CNN,這將需要1-2天才能在遠程訪問的GPU服務器上進行訓練。
我是否僅需要將筆記本電腦留在過夜以完成培訓即可,還是有辦法保存培訓狀態並在第二天從那里恢復?
(在pytorch中實現)
如果您需要繼續訓練將要保存的模型,則需要保存的不僅僅是模型。 您還需要保存優化器的狀態,時期,得分等。您可以這樣操作:
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
我假設您使用ssh進入遠程服務器。 通過運行腳本來訓練模型時,例如, $ python train.py
,只需預附加nohup
:
$ nohup python train.py
這告訴您退出ssh會話並關閉筆記本電腦時忽略掛斷信號的過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.