YOLOv8中混合精度训练及其预权重的修改

混合精度训练

在YOLO中,混合精度预训练权重是指使用混合精度(mixed-precision)训练技术训练得到的预训练权重。

混合精度训练是一种利用低精度数据类型(如半精度浮点数)进行计算的训练方法,以减少计算资源的消耗并提高训练速度。混合精度训练通常结合使用高精度浮点数(如单精度浮点数)和低精度浮点数来进行计算。具体而言,在混合精度中,大部分计算会使用低精度浮点数进行,而少数需要更高精度的计算会使用高精度浮点数。

在YOLO中使用混合精度预训练权重的主要目的是提高目标检测算法的推理速度。由于混合精度计算可以减少计算资源的需求,因此可以加快模型在推理阶段的速度。这对于实时目标检测任务非常重要,因为模型需要在短时间内对图像或视频进行分析和检测。

此外,混合精度预训练权重还可以减少模型在部署设备上的内存占用量。由于低精度浮点数需要更少的存储空间,因此使用混合精度权重可以降低模型的内存需求,使其更适用于资源受限的设备,如边缘计算设备或移动设备。

使用混合精度预训练权重可以提高YOLO目标检测算法的推理速度,并降低模型在部署设备上的内存占用。这对于实时目标检测任务和资源受限设备上的部署非常有益。

预权重的修改

在ultralytics/yolo/engine/trainer.py文件里的倒数第九行修改

try:
        from ultralytics import YOLO
        assert amp_allclose(YOLO('yolov8n.pt'), im)
        LOGGER.info(f'{prefix}checks passed ✅')
    except ConnectionError:
        LOGGER.warning(f"{prefix}checks skipped ⚠️, offline and unable to download YOLOv8n. Setting 'amp=True'.")
    except AssertionError:
        LOGGER.warning(f'{prefix}checks failed ❌. Anomalies were detected with AMP on your system that may lead to '
                       f'NaN losses or zero-mAP results, so AMP will be disabled during training.')
        return False
    return True
#=========================优化======================================
assert amp_allclose(YOLO('yolov8n.pt'), im) #修改这一行即可:

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值