根据上一篇文章准备好数据集之后,就可以开始训练了,需要配置两个地方。一个是数据集的路径(修改为自己的数据集路径);一个是训练参数/属性的设置。
1:修改数据集路径
首先进入...\ultralytics\cfg\datasets
下复制coco128.yaml
文件(当然,其他的文件也可以,格式是一样的),命名为my_data.yaml
(或者其他的名字,这里面用来规定自己的数据集路径),放在datasets
中,如下图
点击进入my_data.yaml
文件,把最后两行删掉或者注释掉(这个是原来数据集的下载位置,我们不需要)。
之后这个文件大概是这个样子。(路径尽量用绝对路径,这样不容易出错)
path: D:\\...\\my_data # 这里用来放你的数据集的文件夹路径(用绝对路径)
train: D:\\...\\my_data\\train # 这里用来放你的训练集路径(绝对路径)
val: D:\\...\\my_data\\valid # 这里用来放你的验证集路径(绝对路径)
test: D:\\...\\my_data\\test # 这里用来放你的测试集路径(绝对路径)
# Classes 这里是放你的标签信息,与上一篇文章分类的那个是一样的,修改成自己的
names:
0: xx
1: xx
2: xx
.
.
设置好之后就可以开始下一步了。
2:训练参数/属性的设置
YOLOv8训练有两种方式,一种是通过命令行,一种是使用Python代码。为了一劳永逸,我这里是使用的Python代码来实现训练过程。
首先我们需要新建一个空的.py
的文件命名为train.py
,然后复制以下代码。model=xx
,是用来设置模型文件的,在cfg/models
里面。
from ultralytics import YOLO
#下面是三种训练的方式,使用其中一个的时候要注释掉另外两个
# Load a model 加载模型
#这种方式是选择.yaml模型文件,从零开始训练
model = YOLO('yolov8n.yaml') # build a new model from YAML
#这种方式是选择.pt文件,利用预训练模型训练
model = YOLO('yolov8n.pt') # load a pretrained model (recommended for training)
#这种方式是可以加载自己想要使用的预训练模型
model = YOLO('yolov8n.yaml').load('yolov8n.pt') # build from YAML and transfer weights
# Train the model data = 这里用来设置你的data.yaml路径。即第一步设置的文件。后面的就是它的一些属性设置,你也可以增加一些比如batch=16等等。
model.train(data='coco128.yaml', epochs=100, imgsz=640)
设置好之后就可以右键运行训练了,效果如下
训练完之后会告诉你训练结果的保存位置,去那个位置寻找就可以了
同时,训练完之后会出现一个预测结果,那个预测结果是根据验证集得到的。如果需要预测测试集的结果,请在命令行输入以下代码。
# 看测试集 重点是要有split=test这句 model=就是你训练完之后的模型;data=就是你的数据集文件,当然可以加入其他的属性比如batch=16等等
yolo task=detect mode=val split=test model=.../best.pt data=.../my_data.yaml
这样就完成了一个完整的训练、预测过程。