在pytorch進行模型保存的時候,一般有兩種保存方式,一種是保存整個模型,另一種是只保存模型的參數。
-
torch.save(model.state_dict(), "my_model.pth") # 只保存模型的參數
-
torch.save(model, "my_model.pth") # 保存整個模型
保存的模型參數實際上一個字典類型,通過key-value的形式來存儲模型的所有參數,本文以自己在實踐過程中使用的一個.pth文件為例來說明,使用的是整個模型。
關於.pth 文件的總結
它是一個包含 四組 “key-value”的字典(這四組不一定同時存在,需要看具體情況,比如可能沒有學習率衰減策略scheduler),類型分別如下:

其中
(1)net["model"] 就相當於是 前面文章中說到的 net.state_dict() 返回的那個字典;
(2)net["optimizer"] 就相當於是 前面文章中說到的 optimizer.state_dict() 返回的那個字典
