報錯截圖如下:
反覆排查問題沒發現為何如此,檢視pytorch中文文件發現儲存和載入模型方法都完全正確,模型儲存和載入**對比中文文件截圖如下:
其中乙個方法是在載入模型時新增引數strict=false,可以只保留鍵值相同的引數避免出錯,用法如下:model.load_state_dict(ckpt[『state_dict』],false),注意ckpt是我載入權重時自定義的物件名。
但是繼續訓練發現實際上原有的權重都沒有載入進來,因為沒有鍵值相同的引數。此處行不通
繼續深究發現多乙個module是因為通過多gpu訓練儲存的模型!如果是在cpu訓練的模型則不會帶有module,解決很簡單,在載入權重前先將模型對映到gpu訓練,
model = torch.nn.dataparallel(model)
ckpt = torch.load(args.weights)
model.load_state_dict(ckpt[『state_dict』])
或者還有解決辦法,直接將權重裡面key值中含有的module.刪掉,改寫權重鍵值對
ckpt = torch.load(model_path,map_location=『cpu』)
from collections import ordereddict
new_state_dict = ordereddict()
for k, v in ckpt.items():
name = k[7:] # remove module.
new_state_dict[name] = v
model.load_state_dict(new_state_dict)
載入GOOGLE地圖時報錯
b 載入google地圖的js檔案時報錯 b 這是我的第一篇部落格,寫的不好請大家多多包涵。今天在做乙個頁面中加入google地圖時遇到乙個問題,當我按照google map 開發者指南上面的步驟進行操作後,在瀏覽器中預覽時,頁面就總是出現js的錯誤,缺少分號。我挺鬱悶的,在另外的頁面都可以,但在我...
pytorch載入模型與凍結
weights torch.load path with open a.pkl wb as f pickle.dump score dict,f weights pickle.load f 直接載入 model.load state dict weights 字典生成式載入 self.load st...
pytorch 載入預訓練模型
pytorch的torchvision中給出了很多經典的預訓練模型,模型的引數和權重都是在imagenet資料集上訓練好的 載入模型 方法一 直接使用預訓練模型中的引數 import torchvision.models as models model models.resnet18 pretrai...