大漠插件yolov5_7.0环境配置遇见的问题解决方法
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
第一章 作者方法
需求环境(只是训练的机器环境,用插件的环境没有任何要求)
- win10或者win11 64位系统. 其他系统没测试过,不一定能行. 系统最好最新版本. (必须)
- 最好有nvidia显卡,并且显卡驱动更新到最新的版本,最好是30系列以上. 如果没有的话,训练效率会很低下. (可选,但是还是强烈建议)
- 全局科学上网.因为很多安装包都需要到外网下载.(必须)
安装步骤
-
安装python 3.8以上的版本.
下载地址 https://www.python.org/downloads/
安装时,记得勾选添加路径到系统环境变量.其他可以默认. 如果忘记了勾选添加路径到环境变量,那需要手动添加环境路径.
方法是打开windows环境变量,在系统变量的Path中添加python的路径. 比如我这里是
C:\Python\Python313
C:\Python\Python313\Scripts
你自己安装时,会稍有不同,根据你的系统用户名和python的版本会不同.
另外最好自己再手动加一个环境变量,避免执行py脚本时,产生cache文件夹
PYTHONDONTWRITEBYTECODE=1 -
安装cuda (如果需求环境的条件2不满足,那这个步骤可以略过)
下载地址 https://developer.nvidia.com/cuda-downloads
Operating System 选windows. Architecture选 x86_64. Version win10和win11对应的10和11版本. Installer Type选exe(local)
安装要选择自定义安装,并且只勾选cuda. 其他一律不选(重要!!!) -
安装PyTorch.
下载地址 https://pytorch.org/get-started/locally
PyTorch Build选Stable版本. Your OS选windows. Package 选Pip. Language选Python.
Compute Platform选最新的cuda.比如我这里是cuda11.8(如果需求环境的条件2不满足,那么这里选CPU)
之后下面的Run this Command会生成一个命令. 复制这个命令,打开命令行粘贴进行运行即可.
比如我这里是pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 -
安装yolo 注意yolo路径里,不要有任何非英文字符.
直接用我下载好的yolo.rar即可. 放在任意目录. 建议放根目录. 我这里是放在了e盘.
解压yolo.rar到E盘根目录. 解压后的目录形式是这样的 e:/yolo/yolov5_7.0
命令行进入到yolov5_7.0这个目录下,然后执行以下命令
pip install -r requirements.txt -
安装git
下载地址 https://git-scm.com/download/win
选择Standalone Installer下的64位安装包 -
测试识别
命令行进入yolov5_7.0目录,然后执行以下命令
python detect.py --weights yolov5s.pt --source data/images/bus.jpg
最后会在runs/detect目录下生成识别后的图像. -
测试训练 使用coco128来测试
命令行进入yolov5_7.0目录,然后执行以下命令
python train.py --weights yolov5s.pt --epochs 300 --batch-size 16 --workers 8 --data …/datasets/coco128/coco128.yaml
成功后,会在runs/train目录下生成训练后的模型和标记的图片等. -
测试模型格式转换 使用yolov5s.pt来测试
命令行进入yolov5_7.0目录,然后执行以下命令
python export.py --weights yolov5s.pt --simplify --include onnx
成功后,会在yolov5_7.0目录下生成yolov5s.onnx文件.
至此,说明你的环境已经配置完成. 其他的请观看我的视频教程. 后续会一步一步教你如何搭配插件来使用.
前言重点
yolo用和作者一样的版本,找不到就有最相近的版本
yolo用和作者一样的版本,找不到就有最相近的版本
yolo用和作者一样的版本,找不到就有最相近的版本
不然百分百各种报错。这是重点。
一、然后还会出现一个问题,改一下作者的5.7.0里面的文件如下
在运行YOLOv5的detect.py脚本时,你遇到了一个关于PyTorch权重加载的错误。错误提示表明,在尝试使用torch.load加载权重文件yolov5s.pt时,由于PyTorch 2.6版本更改了torch.load的默认行为(weights_only参数从False变为True),导致权重加载失败。
具体来说,错误提示中有两个关键信息:
_pickle.UnpicklingError: Weights only load failed.:这表明使用weights_only=True的默认设置无法成功加载权重,因为权重文件中可能包含了除权重之外的其他信息(如模型结构)。
Unsupported global: GLOBAL models.yolo.Model was not an allowed global by default.:这表明权重文件中引用了一个不被默认允许的全局对象models.yolo.Model。
解决方案
根据错误提示,你有两种解决方案:
方案一: 如果你信任权重文件的来源,并且确定它不会执行任何恶意代码,你可以尝试将torch.load的weights_only参数设置为False来加载权重。然而,这可能会带来安全风险,因为它允许执行权重文件中可能包含的任意代码。
要在YOLOv5的代码中实现这一点,你可能需要修改attempt_load函数(位于models/experimental.py中),将torch.load的调用更改为:
python
Copy Code
ckpt = torch.load(attempt_download(w), map_location=‘cpu’, weights_only=False)
但请注意,这样做之前,请确保你完全理解可能带来的安全风险。
补充,大漠作者下载的版本里面的文件还要改一下,不改,训练模型的时候会报错
路径 (C:\yolo\yolov5-7.0\train.py )
ckpt = torch.load(weights, map_location=‘cpu’, weights_only=False)
总结
yolo用和作者一样的版本,找不到就有最相近的版本
然后改文件experimental.py
修改attempt_load函数(位于models/experimental.py中),将torch.load的调用更改为:
python
Copy Code
ckpt = torch.load(attempt_download(w), map_location=‘cpu’, weights_only=False)
就可以解决了,我已经成功可以训练了。注意要N卡,我的是1060