淺談pytorch 模型 .pt, .pth, .pkl的區(qū)別及模型保存方式
我們經(jīng)常會看到后綴名為.pt, .pth, .pkl的pytorch模型文件,這幾種模型文件在格式上有什么區(qū)別嗎?
其實它們并不是在格式上有區(qū)別,只是后綴不同而已(僅此而已),在用torch.save()函數(shù)保存模型文件時,各人有不同的喜好,有些人喜歡用.pt后綴,有些人喜歡用.pth或.pkl.用相同的torch.save()語句保存出來的模型文件沒有什么不同。
在pytorch官方的文檔/代碼里,有用.pt的,也有用.pth的。一般慣例是使用.pth,但是官方文檔里貌似.pt更多,而且官方也不是很在意固定用一種。
模型保存與調(diào)用方式一:
保存:
torch.save(model.state_dict(), mymodel.pth)#只保存模型權(quán)重參數(shù),不保存模型結(jié)構(gòu)
調(diào)用:
model = My_model(*args, **kwargs) #這里需要重新模型結(jié)構(gòu),My_model model.load_state_dict(torch.load(mymodel.pth))#這里根據(jù)模型結(jié)構(gòu),調(diào)用存儲的模型參數(shù) model.eval()
模型保存與調(diào)用方式一:
保存:
torch.save(model, mymodel.pth)#保存整個model的狀態(tài)
調(diào)用:
model=torch.load(mymodel.pth)#這里已經(jīng)不需要重構(gòu)模型結(jié)構(gòu)了,直接load就可以
model.eval()
補充知識:關(guān)于python 導(dǎo)入包 .pth文件
Python在遍歷已知的庫文件目錄過程中,如果見到一個.pth 文件,就會將文件中所記錄的路徑加入到 sys.path 設(shè)置中,于是 .pth 文件說指明的庫也就可以被 Python 運行環(huán)境找到了。
python中有一個.pth文件,該文件的用法是:
首先xxx.pth文件里面會書寫一些路徑,一行一個。
將xxx.pth文件放在特定位置,則可以讓python在加載模塊時,讀取xxx.pth中指定的路徑。
*******************************************
有時,在用import導(dǎo)入項目文件夾里自己寫的python文件時,常常說找不到該文件,這時可以將項目路徑添加到PYTHONPATH下。
暫時添加:
import sys
sys.path.append(項目路徑)
這種方法只會存在內(nèi)存里,一旦退出python就沒有了
一勞永逸:
在 XXX/pythonXXX/site-packages/ (python 包安裝路徑) 下新建后綴為 .pth的文件,在其中加入你的項目路徑,比如
K:\Desktop\face_detect\DFace-win64-master\src
K:\Desktop\face_detect\DFace-win64-master\src\core
*******************************************
有時候我們正在修改或調(diào)試的程序會是一個庫,為修改方便,我們可能不大希望把它放到 site-packages 下面,而是更愿意把它保留在原始的工程目錄中,以方便 IDE 和版本控制工具進行管理。那么怎么能讓 Python 運行環(huán)境找到這個庫呢?
原理上, Python 運行環(huán)境查找?guī)煳募r本質(zhì)是對 sys.path 列表的遍歷,如果我們想給運行環(huán)境注冊新的類庫進來,
要么得用代碼給 sys.path 列表增加新路徑;
要么得調(diào)整 PYTHONPATH 環(huán)境變量;
要么就得把庫文件復(fù)制到已經(jīng)在 sys.path 設(shè)置中的路徑中去(比如 site-packages 目錄);
這些方法都不夠方便。最簡單的辦法是用 .pth 文件來實現(xiàn)。Python 在遍歷已知的庫文件目錄過程中,如果見到一個 .pth 文件,就會將文件中所記錄的路徑加入到 sys.path 設(shè)置中,于是 .pth 文件說指明的庫也就可以被 Python 運行環(huán)境找到了。
其實,easy_install 所依賴的 egg 包安裝就是靠 site-packages 目錄下的 .pth 文件添加對 egg 包的引用實現(xiàn)的。所以修改對應(yīng)的 .pth 文件內(nèi)容,就可以實現(xiàn)對 egg 包的卸載。
以上這篇淺談pytorch 模型 .pt, .pth, .pkl的區(qū)別及模型保存方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python函數(shù)的默認參數(shù)請勿定義可變類型詳解
這篇文章主要介紹了python函數(shù)的默認參數(shù)請勿定義可變類型詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02使用matplotlib實現(xiàn)在同一個窗口繪制多個圖形
這篇文章主要介紹了使用matplotlib實現(xiàn)在同一個窗口繪制多個圖形問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08使用Python實現(xiàn)XLS和XLSX之間的相互轉(zhuǎn)換
在日常工作中,我們經(jīng)常需要處理和轉(zhuǎn)換不同格式的Excel文件,以適應(yīng)不同的需求和軟件兼容性,Excel文件的兩種常見格式是XLS(Excel 97-2003)和XLSX(Excel 2007及以上版本),本文將詳細介紹如何使用Python在XLS和XLSX格式之間進行轉(zhuǎn)換,需要的朋友可以參考下2024-09-09pip安裝py_zipkin時提示的SSL問題對應(yīng)
今天小編就為大家分享一篇關(guān)于pip安裝py_zipkin時提示的SSL問題對應(yīng),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12Python網(wǎng)頁正文轉(zhuǎn)換語音文件的操作方法
這篇文章主要介紹了Python網(wǎng)頁正文轉(zhuǎn)換語音文件的操作方法,需要的朋友可以參考下2018-12-12