yolov5训练时遇到的问题

torch会自动被requirement.txt替换

在对yolov5_5.0进行pip install requirement.txt后,yolo5_5.0会将虚拟环境中中的torch替换为2.0.1版本的,但要注意查看该torch是否为gpu版本,查看方式如下:打开Anaconda Prompt,激活相应环境,输入python,输入import torch 及 torch.cuda.is_available(),就可查看cuda是否可用。事实证明,被更换后的torch版本是cpu版本。

安装gpu版本的torch并卸载cpu版本的torch

安装gpu版本的torch见这篇博文,注意使用清华镜像下载:-i https://pypi.tuna.tsinghua.edu.cn/simple(9条消息) PyTorch1.9.1 GPU版本安装(python3.8+pyTorch1.9.1, torch1.9.1/cu111 + torchvision0.10.1/cu111)_python3.8对应的pytorch_weixin_39450145的博客-CSDN博客https://blog.csdn.net/weixin_39450145/article/details/126454261卸载原有的torch注意在conda的命令窗口中无法执行,需要使用pip才能顺利卸载。

显卡驱动太高

安装torch2.0.1gpu版本之后,在运行train时报错ddl,原因是显卡驱动版本太高了,torch不兼容,例如我的显卡驱动为12.4(当下最新的驱动,事实证明,最新的技术要承担不兼容的风险),所以在控制面板的程序中删除对应的显卡,安装12.0以下版本的显卡驱动,安装10.2版本的驱动,如果安装11.7版本的显卡驱动,会出现问题:训练时box obj total都为nan。

先用小样本调试

一开始不要用很大的样本训练,先用一个小样本的数据集训练,比如coco128,方便排查各种问题。

colab训练

colab模型的传输

直接将项目的zip文件拖到content目录之下  解压命令:

!unzip file.zip -d /path/to/destination

//file.zip:要解压的ZIP文件的名称。
///path/to/destination:要将文件解压到的目标目录路径。

colab数据集的传输

先将数据集的zip文件上传到谷歌硬盘上面,如下:

进入ipynb,点击装载云盘:

装在云盘完成之后,进入路径 /content/drive/MyDrive/Colab Notebooks,就能看到自己上传的压缩文件。

解压上传的数据集

# 解压缩文件
import zipfile
file_dir = '/content/drive/MyDrive/Colab Notebooks/datasets.zip'  # 压缩包路径
zipFile = zipfile.ZipFile(file_dir)
for file in zipFile.namelist():
    zipFile.extract(file, '/content')  # 解压路径
zipFile.close()

box obj total都为nan

 用的显卡版本为cuda11.7,将其改为10.2就好了,具体方法为,在Index of /anaconda/cloud/pytorch/win-64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirrorhttps://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/这个网站找对应的torch版本并下载,然后在conda prompt中安装(安装命令为 conda install 下载文件路径),在官网(Previous PyTorch Versions | PyTorch)中找到对应版本的torchvision,torchaudio,cudatoolkit并下载。

 清华源的使用

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名 
//conda prompt中也能运行

“OSError: [WinError 1455]页面文件太小,无法完成操作。”解决方案

(9条消息) “OSError: [WinError 1455]页面文件太小,无法完成操作。”解决方案_页面文件太小,无法完成操作_indigo love的博客-CSDN博客https://blog.csdn.net/weixin_46133643/article/details/125042903?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168525951116782427453854%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168525951116782427453854&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-125042903-null-null.142^v88^control_2,239^v2^insert_chatgpt&utm_term=OSError%3A%20%5BWinError%201455%5D%20%E9%A1%B5%E9%9D%A2%E6%96%87%E4%BB%B6%E5%A4%AA%E5%B0%8F%EF%BC%8C%E6%97%A0%E6%B3%95%E5%AE%8C%E6%88%90%E6%93%8D%E4%BD%9C%E3%80%82%20Error%20loading%20D%3A%5Csoftware_deep_learning%5Canaconda%5Cenvs%5Cpytorch_2.0.1%5Clib%5Csite-packages%5Ctorch%5Clib%5Ccaffe2_detectron_ops_gpu.dll%20or%20one%20of%20its%20dependencies.&spm=1018.2226.3001.4187https://blog.csdn.net/weixin_46133643/article/details/125042903?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168525951116782427453854%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168525951116782427453854&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-125042903-null-null.142%5Ev88%5Econtrol_2,239%5Ev2%5Einsert_chatgpt&utm_term=OSError%3A%20%5BWinError%201455%5D%20%E9%A1%B5%E9%9D%A2%E6%96%87%E4%BB%B6%E5%A4%AA%E5%B0%8F%EF%BC%8C%E6%97%A0%E6%B3%95%E5%AE%8C%E6%88%90%E6%93%8D%E4%BD%9C%E3%80%82%20Error%20loading%20D%3A%5Csoftware_deep_learning%5Canaconda%5Cenvs%5Cpytorch_2.0.1%5Clib%5Csite-packages%5Ctorch%5Clib%5Ccaffe2_detectron_ops_gpu.dll%20or%20one%20of%20its%20dependencies.&spm=1018.2226.3001.4187

KeyError:momentum

这是因为用adam训练出来的权重,不能用于训练sdg的模型。

训练出来的权值在评估数据集上的精度非常低

1、检查数据集的标签是否有问题

具体操作为,使用一张图片为例,对转yolo格式的程序进行debug,检查过程中是否出错。

2、检查模型是否有问题

对已有的数据集coco128,进行训练及测试,发现模型正常工作。

3、检查预训练权重是否合适

从ultralytics上下载的yolov5s.pt预训练权重,是从coco数据集上训练得到的,coco数据集的识别的80类别里面,并没有直接包含车牌的类别,所以我认为这是训练后测试的精度非常低的主要原因。针对以上的分析,我对模型进行从头开始训练,问题得到有效解决。结论就是,当识别的目标完全不同时,直接套用预训练权重可能会出现精度很低的问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
问题: yolov5训练报错,如何解决? 回答: 在yolov5训练过程中,可能会遇到不同的错误。根据引用\[1\]和引用\[2\]的内容,有几种常见的错误和解决方法。首先,如果在训练开始出现AttributeError: Can't get attribute 'SPPF'错误,可以尝试使用正确的解决方法来解决这个问题。其次,如果在运行yolov5-5.0出现RuntimeError: result type Float can't be cast to the desired output type__int64错误,可以尝试检查代码中的数据类型是否正确。此外,如果在初次编译出现ModuleNotFoundError: No module named 'torch'错误,可以尝试安装缺少的torch模块。总之,根据具体的错误信息,可以参考引用\[2\]中提供的链接,或者根据引用\[3\]中的汇总来解决yolov5训练的报错。 #### 引用[.reference_title] - *1* [YOLOv5训练遇到问题(上)](https://blog.csdn.net/sinat_38961618/article/details/124769585)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [YOLOv5初级问题与报错汇总](https://blog.csdn.net/m0_68524176/article/details/128415084)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值