YOLO-cls训练及踩坑记录

embedded/2025/1/23 17:24:22/

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言

一、模型训练

二、测试

三、踩坑记录

1、推理时设置的imgsz不生效

方法一:

方法二:

2、Windows下torchvision版本问题导致报错

总结


前言

        近期,想尝试下yolov11-cls的实际效果,所以在网上随便找了个花分类的数据集测试了下。数据准备阶段可以参考我的另一篇博客进行处理,链接如下:数据准备参考链接。接下来的正文部分就是我的训练和踩坑记录。注意:虚拟环境里不要安装ultralytics库,否则改动的代码不会生效!!!


一、模型训练

代码链接为:yolov11        

它的训练方式非常简单,查考yolov11官方文档即可,我的训练方法为:

from ultralytics import YOLO
model= YOLO("./yolo11n-cls.pt")
model.train(data="./datasets",epochs=100,imgsz=[256,256],batch=32) 

其中,模型路径和数据集路径需要改为自己的,epochs、imgsz、batch等根据自己的机器情况设定。注意,数据集要根据我开头给的那个链接里的格式摆放,即在datasets下包含两级目录,如图:

然后,train和val下有每个类别的训练和测试数据。训练完成后,我们的模型默认存在./runs/classify下,如我的:

二、测试

我的测试代码如下:

from ultralytics import YOLOmodel=YOLO('./runs/classify/train/weights/best.pt') res=model("./test.jpg",imgsz=256,device="cuda")
print(res)

Linux下基本可以正常执行,其他涉及到的问题继续往下看

三、踩坑记录

1、推理时设置的imgsz不生效

用如上代码推理时,发现日志输出包含这个内容:

what???我设置的imgsz是256,为毛推理时还是224?估计是推理时尺寸强制用了训练时候的尺寸,如果你想在推理时更改尺寸,解决办法如下:

方法一:

根据这个issues的方法,在./ultralytics/engine/predictor.py里的setup_source函数(大概190行左右)进行更改,如下:

源代码:

更改后:

然后在执行推理即可。

方法二:

看到./ultralytics/models/yolo/classify/predict.py里的如下代码(注意红框里的代码):

由红框里的代码可以知道,当你的img是非tensor时才会去进行预处理,所以你提前给它处理成tensor不进行if下的数据操作即可,代码如下(预处理代码均是从官方预处理代码里拷贝的):

完整代码可以我提的issues里获取。

2、Windows下torchvision版本问题导致报错

和服务器同样的torch和torchvision版本,但是在我自己的windows下推理时,抛出了如下异常:

这个问题就是torchvision版本的问题,经过多次尝试,发现如下版本可以正常执行。另外该报错也可通过问题1的解决方案解决。

pip install torch==1.8.1+cpu torchvision==0.9.1+cpu torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

注意,上边那条命令安装的是cpu的,如果你要装gpu的,去官方文档里找对对应的命令即可。


总结

以上就是本篇的全部内容,如有问题,欢迎评论区交流,或+企鹅群:995760755交流;如觉得有用,欢迎三连


http://www.ppmy.cn/embedded/156353.html

相关文章

JavaScript系列(39)-- Web Workers技术详解

JavaScript Web Workers技术详解 🔄 今天,让我们深入了解Web Workers技术,这是一种能够在后台线程中运行脚本的强大特性,可以避免阻塞主线程,提升Web应用的性能和响应性。 Web Workers基础概念 🌟 &#…

网络安全行业岗位职责

系统安全需求分析师 综合能力 掌握常见的IT系统安全需求 具备总结分析整体网络安全需求及子系统安全需求的能力 具有良好的沟通、团队协作和主动性思考的能力 具备良好的技术文档编制能力 专业知识 熟悉网络、终端、数据、威胁情报、态势感知、流量威胁分析等产品的技术方…

MySQL——主从同步

提醒:进行配置时,需要确保一主两从的操作系统、MySQL版本一致,否则将出现问题 环境介绍 服务器IP主服务器172.25.254.10从服务器-1172.25.254.11从服务器-2172.25.254.12 配置 # 快速配置,选择多重执行,确保版本一…

【GORM】初探gorm模型,字段标签与go案例

GORM是什么? GORM 是一个Go 语言 ORM(对象关系映射)库,它让我们可以使用结构体来操作数据库,而无需编写SQL 语句 GORM 模型与字段标签详解 在 GORM 中,模型是数据库表的抽象表示,字段标签&am…

反向代理模块1

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说,反向代理就相当于…

DeepSeek R1发布综述:开源大语言模型的推理能力新标杆

引言 2025年1月20日,人工智能公司DeepSeek-AI正式发布了全新的大语言模型DeepSeek R1和DeepSeek R1-Zero。这一重磅发布标志着开源大型语言模型(LLMs)在推理能力上的重大突破。DeepSeek R1系列不仅通过创新的强化学习技术实现了推理能力的显…

【Spring Boot】Spring原理:Bean的作用域和生命周期

目录 Spring原理 一. 知识回顾 1.1 回顾Spring IOC1.2 回顾Spring DI1.3 回顾如何获取对象 二. Bean的作用域三. Bean的生命周期 Spring原理 一. 知识回顾 在之前IOC/DI的学习中我们也用到了Bean对象,现在先来回顾一下IOC/DI的知识吧! 首先Spring I…

VR vs AR:哪种技术更有潜力改变未来?

AR与VR的未来之争 在我们的日常生活中,技术的更新换代仿佛只需一瞬间。而在众多技术中,虚拟现实(VR)和增强现实(AR)如同璀璨的明星,吸引着无数眼球。你是否曾因选择哪种技术更具潜力而感到困惑…