首页 > 技术文章 > pytorch加载预训练模型出现错误:ModuleNotFoundError: No module named 'models'

iscanghai 2021-11-24 21:10 原文

问题描述:

在使用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必然是在该目录结构下训练出来的,所以我们构建该目录结构即可。

 


 

补充:

 

推荐阅读