Charley- Datawhale AI 夏令营 第五期 CV Task3 学习笔记

训练优化

训练集增强

通过增强数据集,可以提高模型的泛化能力,使得模型能够识别更准确地识别更多变的结果

# 定义一个
augment = A.Compose([
    A.RandomBrightnessContrast(brightness_limit=0.4, contrast_limit=0.4, p=0.8),  # 大范围调整亮度和对比度
    A.HueSaturationValue(hue_shift_limit=40, sat_shift_limit=50, val_shift_limit=40, p=0.8), # 调整色调、饱和度、明度
    A.RGBShift(r_shift_limit=20, g_shift_limit=20, b_shift_limit=20, p=0.7),  # RGB通道随机偏移
    A.ToSepia(p=0.2),  # 随机应用怀旧色调
    A.ChannelShuffle(p=0.3),  # 随机交换颜色通道
    A.RandomGamma(gamma_limit=(80, 120), p=0.7),  # 随机调整Gamma值
    A.CLAHE(clip_limit=4.0, tile_grid_size=(8, 8), p=0.3),  # 直方图均衡化
    A.RandomToneCurve(scale=0.1, p=0.5),  # 随机色调曲线调整
    A.Equalize(p=0.2),  # 随机直方图均衡化
    A.FancyPCA(alpha=0.1, p=0.4),  # 颜色抖动
], 
    p=1.0, # 设置总概率为1,确保每次应用增强
    bbox_params=A.BboxParams(format='pascal_voc', label_fields=['category_ids']))  

# ...
 	    bboxes = []
        categories = []
        for category, bbox in zip(frame_anno['category'].values, frame_anno['bbox'].values):
            bboxes.append(bbox)
            categories.append(category_labels.index(category))
        
        # 应用增强
        if len(bboxes) > 0:
            augmented = augment(image=frame, bboxes=bboxes, category_ids=categories)
            frame = augmented['image']
            bboxes = augmented['bboxes']
            categories = augmented['category_ids']

超参数调整

通过训练前的参数调整,可以达到防止过拟合和调整权重变化速度等效果

results = model.train(
    data="yolo-dataset/yolo.yaml", 
    epochs=40, 
    patience=10, # 限制无意义的训练轮数
    imgsz=640, 
    batch=32, 
    lr0=0.001, # 开始训练时的学习率
    lrf=0.0005, # 训练后期的学习率
    mosaic=0.5, # 训练前期降低Mosaic的混杂度,后期又提高到0.7左右增加训练样本的复杂性
    momentum=0.95, # 提高动量,以更强的动量来平滑优化过程
    weight_decay=0.001, # 权重衰减,增加模型的正则化力度,抑制模型复杂度
    dropout=0.1, # 随机丢弃部分神经元的输出,减少模型的依赖性,提高泛化能力
    label_smoothing=0.05, # 标签平滑,减少模型对训练数据的置信程度,从而帮助提高泛化性能
    conf=0.3, # 设置置信度,低于此标准判定为识别失败
    warmup_epochs=5.0, # 设置热身阶段轮数
    warmup_bias_lr=0.01,  # 设置热身阶段偏置学习率
    workers=12, # 增加加载数据的线程数,提高加载速率
    cos_lr=True # 余弦退火,平滑地调整学习率,有助于稳定训练过程
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值