apex安裝問題
apex不能直接使用pip install來安裝,用這種方式安裝之后會(huì)報(bào)錯(cuò)惑淳。具體應(yīng)該使用下面的方法:
git clone https://github.com/NVIDIA/apex
cd apex
python setup.py install
用這個(gè)方法的時(shí)候,需要提前安裝git饺窿,下載 Git網(wǎng)址 :https://git-scm.com/download/win
沒有什么特殊要求可以直接點(diǎn)擊next汛聚,安裝完成之后在系統(tǒng)變量里面添加git的path
環(huán)境變量的配置參考其他文章
到這里就解決了apex安裝的問題。
pytorch載入模型報(bào)錯(cuò)
使用load_state_dict()載入模型時(shí)出現(xiàn)missing...... unexpected......錯(cuò)誤短荐,這個(gè)錯(cuò)誤相當(dāng)于說模型參數(shù)不匹配倚舀,pytorch中模型參數(shù)是使用orderDict保存的,可以先將模型中的key值輸出忍宋,觀察兩個(gè)之間的區(qū)別痕貌。
params = model.state_dict()? #獲得模型的原始狀態(tài)以及參數(shù)。
for k, vin params.items():
????print(k)
state_dict = torch.load(opt.model_path)
for k, vin state_dict.items():
????print(k)
部分情況是僅僅只是key值多了或者少了糠排,減去或者加上即可舵稠。我這里舉個(gè)少了resnet.的例子,遇到這種情況入宦,這樣處理即可:
state_dict = torch.load(opt.model_path)
new_state_dict = OrderedDict()
for k, vin state_dict.items():
????name ='resnet.' + k
????new_state_dict[name] = v
model.load_state_dict(new_state_dict, strict=False)
在這里load_state_dict()函數(shù)里指定了strict=False哺徊,這個(gè)參數(shù)可以在將原本訓(xùn)練好的模型遷移到新模型上,實(shí)際上它是直接忽略那些沒有的dict乾闰,有相同的就復(fù)制落追,沒有就直接放棄賦值,即忽略報(bào)錯(cuò)涯肩。
然而在我調(diào)了這么多之后轿钠,發(fā)現(xiàn)載入的模型根本就是錯(cuò)的巢钓,所以才會(huì)匹配不上。最終是在github上找到了pre-trained model疗垛。這里有點(diǎn)坑症汹,按作者在github上的說明一步一步看下來,有一句After download pre-trained model and datasets贷腕,因?yàn)檫@個(gè)after背镇,直接就沒有往后面看而是往這一句話的前面找pre-trained model。萬萬沒想到作者放在了后面泽裳。