您好,登錄后才能下訂單哦!
小編給大家分享一下Pytorch保存模型用于測試和用于繼續訓練的區別是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
保存模型
保存模型僅僅是為了測試的時候,只需要
torch.save(model.state_dict, path)
path 為保存的路徑
但是有時候模型及數據太多,難以一次性訓練完的時候,而且用的還是 Adam優化器的時候, 一定要保存好訓練的優化器參數以及epoch
state = { 'model': model.state_dict(), 'optimizer':optimizer.state_dict(), 'epoch': epoch } torch.save(state, path)
因為這里
def adjust_learning_rate(optimizer, epoch): lr_t = lr lr_t = lr_t * (0.3 ** (epoch // 2)) for param_group in optimizer.param_groups: param_group['lr'] = lr_t
學習率是根據epoch變化的, 如果不保存epoch的話,基本上每次都從epoch為0開始訓練,這樣學習率就相當于不變了!!
恢復模型
恢復模型只用于測試的時候,
model.load_state_dict(torch.load(path))
path為之前存儲模型時的路徑
但是如果是用于繼續訓練的話,
checkpoint = torch.load(path) model.load_state_dict(checkpoint['model']) optimizer.load_state_dict(checkpoint['optimizer']) start_epoch = checkpoint['epoch']+1
依次恢復出模型 優化器參數以及epoch
以上是“Pytorch保存模型用于測試和用于繼續訓練的區別是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。