yolo等机器学习项目移动到其他项目时报的“No module named ‘models‘”错误的一种解决方法

前言

我在项目中要将yolov5放入到项目中运行,但出现了标题描述的问题,我找了很久,终于在yolov5的github里的问题讨论处找到了解决方案,里面有很详细的讨论,也应该还有我这里没提到的解决方案,或者是更加详细的解决方案,感兴趣的可以去康康,我就把解决了我问题的答案分享给大家

链接: https://github.com/ultralytics/yolov5/issues/22
.

问题简述

当我们尝试把yolo等已有的机器学习项目移植到我们的项目中时,在解决了一系列导包问题并终于看到开始运行的时候,有可能会报出“No module named ‘models’”的Error。

当前项目的解决方法

在报错的文件的开头加上

import sys
sys.path.insert(0, "path/to/your/MLProject")

insert里填的就是机器学习项目的路径,比如我的例子里,我在我的Django_projects项目里移植了yolov5的项目,并将其项目文件夹命名为yolov5Dir,而我报错的文件时yolov5Dir/models文件夹下的experimental.py,我就在他的开头加上了

import sys
sys.path.insert(0, "Django_projects\yolov5Dir")

之后,便解决了问题

根源解决制作的机器学习项目移植问题

这是因为模型在保存的时候可以使用torch提供的两种方式。
pytorch官方文档

第一种是torch官方推荐的方式,也就是仅对模型的参数进行操作,这样移植起来非常的方便

torch.save(the_model.state_dict(),PATH)

第二种的话是针对整个模型,训练时会将本地的class和目录结构都放到模型里,而现在很多的开源模型都是这样保存的

model = ModelClass(*args,**kwargs)
model.load_state_dict(torch.load(PATH))

所以可以考虑使用第一种来进行模型的保存

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值