linux上用yolov8训练自己的数据集(pycharm远程连接服务器)
pycharm如何远程连接服务器,看之前的文章
首先去GitHub上下载项目地址,然后下载预训练模型放到项目主目录下
然后下载数据集,我这有个推荐的数据集下载网站,可以直接下载yolov8格式的数据集(还支持其他格式的数据集)网站地址
把下载好的数据集解压到yolov8的项目文件下,我建议在v8项目下新建一个文件夹,存放数据,我的是my_train
在ultralytics-main\ultralytics\cfg\models\v8下找到yolov8.yaml,修改nc
然后到你解压好的数据集文件夹下,你会发现有个data.yaml,没错已经帮你写好了,在这个网站下载的数据集很方便,省了很多事情
你只需要记住他的文件路径
然后在项目根目录下新建python文件,如果修改了模型网络结构yaml
from ultralytics import YOLO
if __name__ == '__main__':
model_yaml = "/home/guangyao/code/yolov8/ultralytics-main/ultralytics/cfg/models/v8/yolov8x.yaml" # 你用的是yolov8x.pt就写yolov8x.yaml,yolov8n.pt就写yolov8n.yaml
data_yaml = "/home/guangyao/code/yolov8/ultralytics-main/my_train/People_Detection/data.yaml"
pre_model = "/home/guangyao/code/yolov8/ultralytics-main/yolov8x.pt"
model = YOLO(model_yaml, task='detect').load(pre_model)
results = model.train(data=data_yaml, epochs=15, imgsz=640, batch=4, workers=2,device=(0,1))
如果没有修改网络结构
from ultralytics import YOLO
if __name__ == '__main__':
data_yaml = "/home/guangyao/code/yolov8/ultralytics-main/my_train/People_Detection/data.yaml"
pre_model = "/home/guangyao/code/yolov8/ultralytics-main/yolov8x.pt"
model=YOLO(pre_model,task='detect')
results = model.train(data=data_yaml, epochs=15, imgsz=640, batch=4, workers=2,device=(0,1))
你需要把路径改成自己的,device=(0,1)是因为我服务器上有两块显卡,一块就改成device=0,model.train还有很多参数,详情看官方文档
训练结果
训练完成后,你在本地可能找不到runs文件夹,因为pycharm可以通过设置自动检测本地文件变换并上传服务器,但对于服务器上新增的文件,PyCharm 没有自动检测和下载功能。远程连接进服务器发现是有runs文件夹的
因此,需要手动同步或通过外部工具实现自动同步。比如可以用xfpt连接服务器,下载到本地
验证模型,主目录新建python文件,
from ultralytics import YOLO
if __name__ == "__main__":
pth_path = "/home/guangyao/code/yolov8/ultralytics-main/runs/detect/train2/weights/best.pt"
model = YOLO(pth_path)
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list contains map50-95 of each category
预测test,项目主目录新建python文件
from ultralytics import YOLO
if __name__ == "__main__":
pth_path = "/home/guangyao/code/yolov8/ultralytics-main/runs/detect/train2/weights/best.pt" # 之前训练保存的模型
test_path = "/home/guangyao/code/yolov8/ultralytics-main/my_train/People_Detection/test/images" # 测试集图像路径
model = YOLO(pth_path) # load a custom model
# Predict with the model
results = model(test_path, save=True, conf=0.5) # predict on an image
在用xfpt连接服务器把runs文件夹传到本地进行查看
结果看起来也还行