win10 yolov8 训练问题集锦
1.win10cmd 命令行 训练
要先激活虚拟环境,命令如下:
D: cd D:\\ultralytics-main\\venv\\Scripts activate.bat cd ..\\.. yolo train data=D:\\ultralytics-main\\datasets\\zmbh.yaml model=D:\\ultralytics-main\\yolov8m epochs=5000 imgsz=640 batch=2 workers=4 device=0 amp=True half=True
2.固定文件夹images和labels名称,不能动,否则会出现 no labels found in detect set, can not compute metrics without labels错误
测过了改utils.py 里面的images 为图片文件夹(如JPEGImages)名称,问题依然存在,所以还是按照yolov8规定的来。
3.运行yolov8报错:ValueError: not enough values to unpack (expected 3, got 0)
导致报这种错误的原因可能有多种:
1.把项目.yaml文件中的数据集路径改为绝对路径,删除label中之前生成的.cache文件后重新运行。
2.生成的train.txt和val.txt 里的文件路径错了,仔细检查下
4.Yolov8训练时box_loss、cls_loss、dfl_loss、Box(P、R、mAP都等于nan或0)
1、训练的时候出现box_loss、cls_loss、dfl_loss都为nan的情况,需要将训练的时候的参数进行修改,设置amp=False
2、修改之后训练的时候出现P、R、map值为NAN或者非常小,一般来说基于预训练模型来进行训练P、R、map的值都不会很低,如果出现0.0x这种一般是有点问题,这种情况可以尝试以下操作,需要到ultralytics/cfg文件目录下找到default.yaml的默认设置文件
搜索half,将half改成False
half: False # (bool) use half precision (FP16)
3.然后还需要将ultralytics/engine目录下的validator进行注释,用好的显卡注意改过来
#self.args.half = self.device.type != "cpu" # force FP16 val during training
本文来自博客园,作者:NLazyo,转载请注明原文链接:https://www.cnblogs.com/bile/p/18386724