問題描述:
在使用pytorch加載預訓練模型的時候,出現錯誤:ModuleNotFoundError: No module named 'models',該預訓練模型是從官方下載的yolov5s.pt
解決方案:
在出錯的文件目錄下,構建yolov5的目錄結構。即需要存在yolov5的models和utils,復制這兩個文件夾到該文件目錄下。例如,此時我報錯的位置是yolov5/train.py,因為我是使用yolo5做移植,yolov5目錄下並不是真正的yolov5,所以會報缺失models。更深層次的原因是使用了如下的方式保存weights(還有另一種方式保存和加載模型,可在pytorch官方文檔中查看,那種方式不會出現此問題,更加利於移植):
以這樣的方式保存的權重,會將你模型的源代碼的相對位置也默認保存(這里指yolov5里面的models文件夾和utils文件夾),從官方下載的yolo5s.pt必然是在該目錄結構下訓練出來的,所以我們構建該目錄結構即可。
補充: