在做二維目標檢測時,我們會對神經網路的部分地方進行修改,比如增加CBAM,或者修改FPN等等,但是將修改后的網路進行訓練時,加載預訓練權重程序卻不會報錯,甚至修改網路后性能不增反降,這里面蘊含的知識點在這篇文章做做一個總結,
pytorch中網路匯入預訓練權重的代碼很簡單:
net = model()
net.to(device)
net.load_state_dict(torch.load('params.pth'))
其中:
- torch.load('params.pth')只是加載了模型引數,并沒有將引數放入網路中,這里是將引數以鍵值對的方式加載到了記憶體中,
- load_state_dict方法才是將引數字典放入網路中,
當我們對網路做了修改后,我們只需要按下面的方式做,就可以將之前的預訓練權重加載到新網路中,在mmdetection或者一些大牛的開源代碼中,修改網路后仍然能加載預訓練權重也是因為以下原因
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/433323.html
標籤:AI
上一篇:經典卷積神經網路模型
