YOLOV8如何训练自己的图片分类模型

本文章已经生成可运行项目,
YOLO8不仅仅可以胜任目标检测任务,目前YOLO8还支持图片分类、实例分割、人体关键点检测。本篇文章介绍如何使用YOLO8训练一个自己的图片分类模型。 YOLO8训练目标检测模型的方法参见本人主页的另外一篇文章:如何使用YOLOV8训练自己的目标检测模型

首先准备好ImageNet格式的数据集,我这里以81类水果图片分类数据集为例。ImageNet数据集应该具有一下目录结构

train
├── 类别1

            |——图片1

            |——图片2

            |——......
└── 类别2

            |——图片1

            |——图片2

            |——......

........

val
├── 类别1

            |——图片1

            |——图片2

            |——......
└── 类别2

            |——图片1

            |——图片2

            |——......

 准备好数据集之后,还需要配置YOLO8的运行环境,详见本人主页的这篇文章

按照上面的文章在anaconda中配置好虚拟环境之后,我们就可以着手开始训练,训练的方式有很多,我们这里选择python程序训练。在训练之前,文件目录如下面图片所示

datas文件夹下是数据集图片,trian.py是训练脚本,yolov8m-cls.pt是模型模型(我们这里选择使用yolov8m-cls基础模型),yolov8n.pt是模型训练过程中做混合精度验证用到的。这些模型权重都可以在ultralytics官网下载 

train.py文件代码如下:

from ultralytics import YOLO
#这里使用的是linux系统进行训练 配置好YOLO8环境,一键运行该文件即可自动训练

# Load a model
#model = YOLO('yolov8n-cls.yaml')  # build a new model from YAML
model = YOLO('yolov8m-cls.pt')  # load a pretrained model (recommended for training)
#model = YOLO('yolov8n-cls.yaml').load('yolov8n-cls.pt')  # build from YAML and transfer weights

# Train the model
#data参数指定数据集路径(文件夹),
#注意workers在windows系统中指定为0
results = model.train(data='datas', batch=32,workers=16,epochs=250,imgsz=224)

 之后即可在conda虚拟环境中的YOLO8环境下开展训练(我这里的环境名称为pytorch_learn)

之后,控制台窗口会有一系列的日志输出

经过一段时间等待之后,在目录下的runs文件夹下会自动生成训练过程记录,包含模型权重、混淆矩阵、PR曲线、loss曲线等 

本文章已经生成可运行项目
### 使用YOLOv8进行分类模型训练 #### 准备工作 为了使用YOLOv8进行分类模型训练,首先需要准备好合适的数据集。数据集应当被合理地划分为训练集、验证集和测试集。对于图像分类任务而言,每张图片应附有对应的标签文件,表明该图所属类别。 #### 安装依赖库 确保安装了必要的Python包来支持YOLOv8的操作环境。通常这涉及到安装`ultralytics`库以及其他可能所需的辅助工具或框架组件[^1]。 ```bash pip install ultralytics ``` #### 配置参数设置 在启动训练之前,需定义好一系列重要的超参数选项。这些参数可以通过命令行传递给训练脚本,具体如下: - `--imgsz`: 设置输入图片尺寸,默认情况下可能是640×640像素; - `--batch-size`: 批处理大小,决定了每次迭代中使用的样本数量; - `--epochs`: 总共要执行多少次完整的遍历整个数据集的过程; - `--data`: 指定用于描述数据分布情况的YAML配置文件路径; - `--weights`: 如果是从预训练权重开始,则提供相应的.pth或其他格式的权重文件位置;如果没有特别指明,则会随机初始化网络权重。 #### 开始训练过程 一旦完成了上述准备工作之后,就可以调用官方提供的API接口来进行实际的训练操作了。下面给出了一条典型的命令行指令作为例子说明如何发起一次基于YOLOv8架构下的分类器学习流程: ```python from ultralytics import YOLO model = YOLO('yolov8n-cls.pt') # 加载YOLOv8分类模型 results = model.train(data='path/to/dataset', epochs=100, imgsz=640) ``` 此段代码片段展示了怎样加载一个预先存在的YOLOv8分类版本(`yolov8n-cls`)并对其进行特定条件下的再训练活动。其中`'path/to/dataset'`应该替换为指向本地存储的实际数据集目录地址。 #### 后续评估与调整 完成初步训练后,建议对生成的结果进行全面分析,并依据反馈信息适时作出相应改进措施,比如微调某些关键性的超参设定或是增加额外的正则化手段等,从而进一步提升最终产出物的质量水平。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

城南皮卡丘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值