yolov8改进步骤
1.看视频:parse
2.修改fitness()函数
位置:ultralytics/utils/metrics.py 检索fitness(self)
def fitness(self):
"""Model fitness as a weighted combination of metrics."""
w = [0.0, 1.0, 0.0, 0.0] # weights for [P, R, mAP@0.5, mAP@0.5:0.95]
return (np.array(self.mean_results()) * w).sum()
作用:修改报错best.py的依据是百分百看recall召回率
3.创建dataset/data.yaml文件
把path改成data的绝对路径地址!!!
path: /public/home/test202306/zj/data
train: train
val: val
test:
# Classes
names:
0: debris on the front of the vehicle
1: cover open
2: layer detachment
3: anti loosening wire breakage
4: oil leakage
4.创建train.py
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
str = 'yolov8-C2f-DCNv3.yaml'
model = YOLO('ultralytics/cfg/models/Add/{}'.format(str))
# model.load('yolov8n.pt') # 是否加载预训练权重,科研不建议大家加载否则很难提升精度
model.train(data=r'dataset/data.yaml',
cache=False,
imgsz=640,
epochs=200,
single_cls=False, # 是否是单类别检测
batch=128,
close_mosaic=10,
workers=6,
device='0',
optimizer='SGD', # using SGD
# resume='runs/train/exp21/weights/last.pt', # 如过想续训就设置last.pt的地址
amp=False, # 如果出现训练损失为Nan可以关闭amp
project='runs/train',
name='exp_{}'.format(str[:-5]), # 当前实验的名称
)