情況分為兩種
情況一
解決:model.load_state_dict(checkpoint, false)
這個部分的作用是判斷上面引數拷貝過程中是否有unexpected_keys
或者missing_keys
,如果有就報錯,**不能繼續執行。當然,如果strict=false
,則會忽略這些細節。
情況二
原本的模型載入中如下圖
在使用預訓練模型時,pytorch
的機制會導致模型每層前面加了乙個模型名字:
如下的模型多了乙個basemodel
的字樣
解決:
for k, v in pretrained_dict.items():
print("pretrained k,v:",k,v)
if not k.find("basemodel") == -1: #if find pretrain model name, delete it
name = k[(len("basemodel")+1):] # remove `module.`
model_dict[name] = v
else:
name = k
print("delete last layer without pretrained model name")
print("new_name:",name)
使用pytorch時所遇到的問題總結
使用pytorch時所遇到的問題總結 1 ubuntu vscode切換虛擬環境 在ubuntu系統上,配置工作區資料夾所使用的虛擬環境。之前筆者誤以為只需要在vscode內建的終端上將虛擬環境切換過來即可,後來發現得通過配置vscode的直譯器 interpreter 具體方法如下 選中需要配置的...
安裝pytorch遇到的問題
git clone recursive pip install r requirements.txt 這步操作超級慢 python setup.py install 安裝成功後,測試 python import torch 出現錯誤 參考 cd usr local lib python3.5 dis...
pytorch 學習遇到的 問題
relu 和 leaky relu 中 inplace 設定 nn.relu inplace true default inplace false nn.leakyrelu inplace true default inplace false 將計算得到的值直接覆蓋之前的值 有時能夠節省運算記憶體,...