今天用pytorch保存模型時(shí)遇到bug
Can't pickle class 'torch._C._VariableFunctions'>
在google上查找原因,發(fā)現(xiàn)是保存時(shí)保存了整個(gè)模型的原因,而模型中有一些自定義的參數(shù)
將 torch.save(model,save_path)
改為 torch.save(model.state_dict(),save_path)
然后載入模型也做相應(yīng)的更改就好了
補(bǔ)充:pytorch訓(xùn)練模型的一些坑
1. 圖像讀取
opencv的python和c++讀取的圖像結(jié)果不一致,是因?yàn)閜ython和c++采用的opencv版本不一樣,從而使用的解碼庫不同,導(dǎo)致讀取的結(jié)果不同。
2. 圖像變換
PIL和pytorch的圖像resize操作,與opencv的resize結(jié)果不一樣,這樣會(huì)導(dǎo)致訓(xùn)練采用PIL,預(yù)測時(shí)采用opencv,結(jié)果差別很大,尤其是在檢測和分割任務(wù)中比較明顯。
3. 數(shù)值計(jì)算
pytorch的torch.exp與c++的exp計(jì)算,10e-6的數(shù)值時(shí)候會(huì)有10e-3的誤差,對(duì)于高精度計(jì)算需要特別注意,比如
兩個(gè)輸入5.601597, 5.601601, 經(jīng)過exp計(jì)算后變成270.85862343143174, 270.85970686809225
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 解決Pytorch 加載訓(xùn)練好的模型 遇到的error問題
- WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南)
- 教你一分鐘在win10終端成功安裝Pytorch的方法步驟
- 安裝pytorch時(shí)報(bào)sslerror錯(cuò)誤的解決方案