看了网上好多YOLOv8训练自己数据集的帖子,都存在一个问题,在远程服务器上该怎样部署?下面是我的步骤:
1.前往github下载源码
GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > CoreML > TFLite
2.准备自己的数据集
新建dataset文件夹,文件夹文件如图所示
其中VOCdevkit中目录,Annotations中存放所有xml标签,JPEGImages中存放所有图像,txt文件中为所有txt标签
images和labels中的文件夹都一样,images中存放图像,labels中存放标签(txt文件)
到此,数据集制作就完成了,如果有想要划分数据集图像的代码,可以关注留言,我可以看到
3.配置文件修改
在yolov8下新建data.yaml
其中的内容如图所示
train: ./dataset/images/train # train images (relative to 'path') 128 images
val: ./dataset/images/val # val images (relative to 'path') 128 images
test: ./dataset/images/test
nc: 3
# Classes
names: ['类别1','类别2','类别3']
自己替换类别和个数
4.权重下载
Releases · ultralytics/assets · GitHub
自己下载权重哈!!!一般就是yolov8n.pt, yolov8s.pt , yolov8l.pt, yolov8x.pt,自己需要哪个下载哪个
下载好后,直接放在yolov8下。
5.其实这里大家如果需要调参,可以去下面的路径调整
具体怎么调,这是个玄学!!!自己把握
6.新建训练文件。其实这里是可以进入下图路径中去运行的,但是,各位不觉的难搞吗?直接整一个接口文件。
在yolov8下新建train.py,内容如下:
from ultralytics import YOLO
model = YOLO("weights/yolov8n.pt")
results = model.train(data="data.yaml",imgsz=640, epochs=300, batch=16, device=0, workers=4)
这里我就用yolov8n了,也就是模型最小,速度最快的那位!!
其次,这里的imgsz根据自己数据集选择,不要太大!!batch一般就是4,16,32,64,自己选。但是越大模型收敛越快!!!works我选择的4,如果自己设备好,可以考虑8个线程。
7.终于准备完了!!!上传到云服务器,我用的是恒源云,你们可以根据自己情况选择。上传命令的话,恒源云官方文档都有,如果有实在不会的小伙伴,记得评论区留言!我会应粉丝要求,出一篇博客,如何使用云服务器!
8.云服务器处需要修改部分。一般都是上传到hy-tmp下。
9.高能预警!!!!!!!
此处需要将datasets数据集复制到与yolov8同级目录下!!!
原因是遇到以下报错!!!!真的是,恶心至极,竟然找不到数据集!!!原因是因为Ubuntu下的远程服务器中的setting设置导致的,因此,要把数据集dataset复制一份,挪到datasets(自己新建一个)中。
RuntimeError: Dataset 'data.yaml' error ❌
Dataset 'data.yaml' images not found ⚠️, missing paths ['/hy-tmp/datasets/dataset/images/val']
Note dataset download directory is '/hy-tmp/datasets'. You can update this in '/root/.config/Ultralytics/settings.yaml'
10.开始训练。python train.py
可以看到终于运行成功了!!!
11.验证模型性能
对于我们这种科研狗,还是得有这一步的,毕竟这一步可比结果重要
还是在yolov8目录下新建val.py。此时切记,训练的最好的best.pt放在yolov8目录下。这里的batch=1这就是评估每一张图像(切记切记!!),devices=0代表gpu个数
from ultralytics import YOLO
model = YOLO("best.pt") #用于迁移训练的权重文件路径
results = model.val(data="data.yaml",batch=1, device=0,save=True)
最终python val.py运行成功!本人的实验数据保密!!
当然,大家有问题可以在评论区留言,当然有时候可能系统信息太多可能会漏,大家可以在b站发消息给我!如果有必要我会在b站出对应视频教程,需要的可以在下面关注小编,评论区写上视频