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

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

torch.save實(shí)現(xiàn)對網(wǎng)絡(luò)結(jié)構(gòu)和模型參數(shù)的保存 & pytorch模型文件.pt .pth .pkl區(qū)別與聯(lián)系

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

1.對網(wǎng)絡(luò)結(jié)構(gòu)和模型參數(shù)的保存

有兩種方式:

1.1

保存整個(gè)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)信息和模型參數(shù)信息,save的對象是網(wǎng)絡(luò)模型。
我們假設(shè)訓(xùn)練好的模型名為net0,則

#保存整個(gè)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和結(jié)構(gòu)的模型參數(shù)
torch.save(net0,'net0.pth')
torch.save(net0,'net0.pkl')

這種方式消耗的內(nèi)存較大

1.2

只保存神經(jīng)網(wǎng)絡(luò)的訓(xùn)練模型參數(shù),save的對象是net.state_dict()。
我們假設(shè)訓(xùn)練好的模型名為net0,則

#只保存神經(jīng)網(wǎng)絡(luò)的模型參數(shù)
torch.save(net0.state_dict(),'net0.pth')
torch.save(net0.state_dict(),'net0.pkl')

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

2. 不同后綴名的pytorch模型文件的區(qū)別與聯(lián)系

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

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

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

欄目分類
最近更新