pytorch模型保存方式
pytorch模型保存
保存模型主要分為兩類:
- 保存整個模型
- 只保存模型參數(shù)
1.保存加載整個模型(不推薦)
保存整個網(wǎng)絡(luò)模型,網(wǎng)絡(luò)結(jié)構(gòu)+權(quán)重參數(shù)
torch.save(model,'net.pth')
加載整個網(wǎng)絡(luò)模型(可能比較耗時)
model=torch.load('net.pth')2.只保存加載模型參數(shù)(推薦)
保存模型的權(quán)重參數(shù)(速度快,占內(nèi)存少)
torch.save(model.state_dict(),'net_params.pth')
load 模型參數(shù)
因為我們只保存了 模型的參數(shù),所以需要先定義一個網(wǎng)絡(luò)對象,然后再加載模型參數(shù)。
model=myNet()
#將模型參數(shù)加載到新模型中,torch.load返回的是一個OrderedDict,說明.state_dict()只是把所有模型的參數(shù)都已OrderedDict的形式存下來。
state_dict=torch.load('net_params.pth')
model.load_state_dict(state_dict)Note:保存模型進(jìn)行推理測試時,只需保存訓(xùn)練好的模型的權(quán)重參數(shù),即推薦第二種方法。
load_state_dict的參數(shù)strict=False new_model.load_state_dict(state_dict,strict=False)
如果哪一天我們需要重新寫這個網(wǎng)絡(luò)的,比如使用new_model,如果直接load會出現(xiàn)unexpected key.
但是加上strict=False可以很容易地加載預(yù)訓(xùn)練的參數(shù)(注意檢查key是否匹配),直接忽略不匹配的key,對于匹配的key則進(jìn)行正常的賦值。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python腳本zabbix自定義key監(jiān)控oracle連接狀態(tài)
這篇文章主要介紹了使用Python腳本zabbix自定義key監(jiān)控oracle連接狀態(tài),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
Python連接Postgres/Mysql/Mongo數(shù)據(jù)庫基本操作大全
在后端應(yīng)用開發(fā)中,經(jīng)常會用到Postgres/Mysql/Mongo這三種數(shù)據(jù)庫的基本操作,今天小編就給大家詳細(xì)介紹Python連接Postgres/Mysql/Mongo數(shù)據(jù)庫基本操作,感興趣的朋友一起看看吧2021-06-06
python3 xpath和requests應(yīng)用詳解
這篇文章主要介紹了python3 xpath和requests應(yīng)用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
keras訓(xùn)練淺層卷積網(wǎng)絡(luò)并保存和加載模型實例
這篇文章主要介紹了keras訓(xùn)練淺層卷積網(wǎng)絡(luò)并保存和加載模型實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
詳解使用python3.7配置開發(fā)釘釘群自定義機器人(2020年新版攻略)
這篇文章主要介紹了詳解使用python3.7配置開發(fā)釘釘群自定義機器人(2020年新版攻略),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python使用concurrent.futures模塊實現(xiàn)多進(jìn)程多線程編程
Python的concurrent.futures模塊可以很方便的實現(xiàn)多進(jìn)程、多線程運行,減少了多進(jìn)程帶來的的同步和共享數(shù)據(jù)問題,下面就跟隨小編一起了解一下concurrent.futures模塊的具體使用吧2023-12-12

