日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

torch.save實現對網絡結構和模型參數的保存 & pytorch模型文件.pt .pth .pkl區別與聯系

作者:甘霖佳佳 更新時間: 2022-01-31 編程語言

1.對網絡結構和模型參數的保存

有兩種方式:

1.1

保存整個神經網絡的結構信息和模型參數信息,save的對象是網絡模型。
我們假設訓練好的模型名為net0,則

#保存整個神經網絡結構和結構的模型參數
torch.save(net0,'net0.pth')
torch.save(net0,'net0.pkl')

這種方式消耗的內存較大

1.2

只保存神經網絡的訓練模型參數,save的對象是net.state_dict()。
我們假設訓練好的模型名為net0,則

#只保存神經網絡的模型參數
torch.save(net0.state_dict(),'net0.pth')
torch.save(net0.state_dict(),'net0.pkl')

保存的是一個collections.OrderedDict()字典形式。
字典是key值對應參數層的名稱,value值對key層相應的參數值。

2. 不同后綴名的pytorch模型文件的區別與聯系

pth是path的縮寫,pkl是pickle的縮寫。
.pkl和.pth文件都是以二進制形式存儲的,用pickle這個庫加載.pkl和.pth文件,效果相同。
如果你是使用torch.save方法來進行模型參數的保存,那保存文件的后綴其實沒什么區別,結果都是一樣的,只是.pth用的更多一些。

但如果應用場景不在這里這兩種(.pkl、.pth)格式的文件還是有區別的:
①.pkl文件是python里保存文件的一種格式,如果直接打開會顯示序列化內容,其實是以二進制形式存儲的,若要閱讀文件,需要用’rb’而不是’r’。
②.pth文件有不同的應用,python在遍歷已知庫文件目錄過程中,如果見到一個.pth文件,就會將文件中所記錄的路徑加入到sys.path設置中,于是.pth文件指明的庫也就可以被python運行環境找到。

原文鏈接:https://blog.csdn.net/weixin_45928096/article/details/122397876

欄目分類
最近更新