Ultralytics YOLO27:
返回 Ultralytics 术语表

Gradient Accumulation

了解梯度累积如何在有限的 GPU 内存下实现更大的有效批量大小,并获取实用的 PyTorch 和 Ultralytics YOLO 训练指南。

梯度累积是一种训练技术,它会累加多个称为微批次的小批次中的梯度,然后再执行一次模型权重更新。当可用 GPU 内存无法一次容纳完整批次时,这种方法可以近似使用更大的批次大小进行训练。这样无需更改模型架构或降低输入分辨率,就能让内存占用较高的梯度下降变得切实可行。

梯度累积的工作原理#

在正常训练中,每个批次都会经过三个主要步骤:计算损失,使用反向传播计算梯度,然后让优化器更新模型权重。接着,梯度会在处理下一个批次前被清除。

梯度累积会延迟优化器更新。每个微批次都会执行一次前向传播和反向传播,但其梯度会保留在内存中,并与后续微批次的梯度相加。这种行为自然遵循 PyTorch backward 操作的机制,该操作会累加每个参数梯度字段中的值。

在达到配置的累积步数后:

  1. 优化器会更新模型权重。
  2. 使用类似 Optimizer.zero_grad 的操作重置梯度。
  3. 开始新的累积窗口。

有效批次大小为:

microbatch size x accumulation steps x number of training devices

例如,大小为 4 的图像微批次累积 8 步,其效果近似于在一块 GPU 上使用包含 32 张图像的批次。使用四块 GPU 时,全局有效批次大小将变为 128。

对内存、速度和学习的影响#

梯度累积可以降低激活值所需的峰值内存,因为网络一次只处理一个微批次。它不会显著减少模型参数、梯度或优化器状态所占用的内存。

它通常也不会加快训练速度。处理八个微批次仍然需要执行八次前向传播和反向传播,而且较小的批次可能无法高效利用 GPU。它的主要优势是能在有限内存中容纳所需的有效批次。另一个潜在优势出现在分布式训练中:借助 DistributedDataParallel no_sync 等功能,实现可以避免在累积窗口结束前同步梯度。

手动实现时,通常会将每个微批次的损失除以累积步数,使最终梯度表示平均值而不是总和。高级训练器可能会自动处理归一化,因此额外缩放可能导致更新结果错误。

梯度累积可以近似真正的大批次,但结果并不总是完全相同。批归一化统计量是根据单个微批次计算的,而随机操作和浮点运算顺序也可能引入差异。因此,学习率可能需要经过验证,而不能直接自动缩放。

相关技术与关键区别#

梯度累积经常与其他内存或稳定性技术混淆:

  • 梯度检查点通过在反向传播期间重新计算选定的前向传播操作来减少激活值内存。PyTorch 激活检查点文档介绍了这种以计算换内存的权衡。梯度累积则是将一个大批次拆分成较小的微批次。
  • **混合精度**使用较低精度的数据类型存储或计算选定的操作。它可以减少内存占用并提高吞吐量,而梯度累积改变的是优化器更新的频率。按照正确的自动混合精度累积工作流可以结合使用这两种技术。
  • 梯度裁剪会限制梯度幅度,以减少异常大幅更新造成的不稳定。它不会产生更大的有效批次。与梯度累积结合使用时,通常应在梯度完成累积后再进行裁剪,使用类似 clip_grad_norm 的操作。

实际应用#

在高分辨率医学图像分割中,一块 12 GB 的 GPU 可能一次只能容纳两张大型扫描图像。跨八个微批次累积梯度可以产生大小为 16 的有效批次,同时保留识别小型解剖结构所需的分辨率。代价是优化器更新之间的间隔更长。

对于航空目标检测,工程团队可能会使用四块 GPU 进行训练,每个设备处理六张图像,并设置四个累积步数。有效全局批次为 96 张图像。这样可以在让每个设备保持在内存限制以内的同时,稳定包含许多小型车辆或建筑物的场景中的更新。团队可以通过 Ultralytics Platform 云训练管理云端实验、数据集和训练运行。

使用 Ultralytics YOLO 进行梯度累积#

Ultralytics 的模型训练工作流会根据物理 batch 和名义 nbs 设置推导累积行为。使用 batch=4nbs=64 时,训练器会通过跨多个微批次延迟优化器更新,将目标设为名义批次大小 64。

from ultralytics import YOLO

# Load a pretrained YOLO26 detection model
model = YOLO("yolo26n.pt")

# Use a small physical batch and a larger nominal batch
results = model.train(
    data="coco8.yaml",
    epochs=10,
    batch=4,
    nbs=64,
)

高级训练器会管理反向传播、梯度累积、优化器步骤和梯度清除。其行为记录在 Ultralytics BaseTrainer 参考文档中。实际使用时,应选择能够稳定运行的最大微批次,计算预期有效批次,并在更改累积步数、学习率或设备数量时比较验证结果。

Explore solutions

用于航拍影像的计算机视觉

用于航拍影像的计算机视觉

使用 Ultralytics YOLO 将无人机和航拍影像转化为针对农业、水产养殖、环境监测、自然保护及地理空间分析的实时洞察。
了解更多
航空航天中的计算机视觉

航空航天中的计算机视觉

借助 Ultralytics YOLO 模型将视觉 AI 引入空中监测。使用计算机视觉解决方案赋能无人机、航空航天工作流、环境保护与地理空间行业。
了解更多

使用 Ultralytics YOLO 模型保护每个站点。视觉 AI 赋能周界监控、威胁检测、车牌识别和工作场所安全。
了解更多
机器人计算机视觉

机器人计算机视觉

借助 Ultralytics YOLO 模型打造更智能的机器。机器人技术中的视觉 AI 可实现自主导航、感知、目标跟踪和实时控制。
了解更多
物流计算机视觉

物流计算机视觉

使用 Ultralytics YOLO 模型提升物流效率。视觉 AI 可实现包裹检测、分拣、车辆跟踪和仓库安全实时监控。
了解更多
零售计算机视觉

零售计算机视觉

使用 Ultralytics YOLO 模型重新构想零售。视觉 AI 为库存跟踪、货架监控、队列管理和更智能的客户洞察提供支持。
了解更多
医疗领域的计算机视觉

医疗领域的计算机视觉

使用 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可实现更快的医学影像处理、更智能的诊断和患者监护。
了解更多
制造业中的计算机视觉

制造业中的计算机视觉

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 可推动质量控制、缺陷检测、PPE 合规和装配线自动化。
了解更多
汽车行业中的计算机视觉

汽车行业中的计算机视觉

使用 Ultralytics YOLO 模型在汽车行业应用计算机视觉。视觉 AI 提升道路安全、驾驶辅助和车辆自动化水平,让道路更加智能。
了解更多
农业中的计算机视觉

农业中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 带入智能农业。为作物监测、牲畜追踪和精准农业提供支持,提升产量与智能化水平。
了解更多
用于航拍影像的计算机视觉

用于航拍影像的计算机视觉

使用 Ultralytics YOLO 将无人机和航拍影像转化为针对农业、水产养殖、环境监测、自然保护及地理空间分析的实时洞察。
了解更多
航空航天中的计算机视觉

航空航天中的计算机视觉

借助 Ultralytics YOLO 模型将视觉 AI 引入空中监测。使用计算机视觉解决方案赋能无人机、航空航天工作流、环境保护与地理空间行业。
了解更多

使用 Ultralytics YOLO 模型保护每个站点。视觉 AI 赋能周界监控、威胁检测、车牌识别和工作场所安全。
了解更多
机器人计算机视觉

机器人计算机视觉

借助 Ultralytics YOLO 模型打造更智能的机器。机器人技术中的视觉 AI 可实现自主导航、感知、目标跟踪和实时控制。
了解更多
物流计算机视觉

物流计算机视觉

使用 Ultralytics YOLO 模型提升物流效率。视觉 AI 可实现包裹检测、分拣、车辆跟踪和仓库安全实时监控。
了解更多
零售计算机视觉

零售计算机视觉

使用 Ultralytics YOLO 模型重新构想零售。视觉 AI 为库存跟踪、货架监控、队列管理和更智能的客户洞察提供支持。
了解更多
医疗领域的计算机视觉

医疗领域的计算机视觉

使用 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可实现更快的医学影像处理、更智能的诊断和患者监护。
了解更多
制造业中的计算机视觉

制造业中的计算机视觉

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 可推动质量控制、缺陷检测、PPE 合规和装配线自动化。
了解更多
汽车行业中的计算机视觉

汽车行业中的计算机视觉

使用 Ultralytics YOLO 模型在汽车行业应用计算机视觉。视觉 AI 提升道路安全、驾驶辅助和车辆自动化水平,让道路更加智能。
了解更多
农业中的计算机视觉

农业中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 带入智能农业。为作物监测、牲畜追踪和精准农业提供支持,提升产量与智能化水平。
了解更多
用于航拍影像的计算机视觉

用于航拍影像的计算机视觉

使用 Ultralytics YOLO 将无人机和航拍影像转化为针对农业、水产养殖、环境监测、自然保护及地理空间分析的实时洞察。
了解更多
航空航天中的计算机视觉

航空航天中的计算机视觉

借助 Ultralytics YOLO 模型将视觉 AI 引入空中监测。使用计算机视觉解决方案赋能无人机、航空航天工作流、环境保护与地理空间行业。
了解更多

使用 Ultralytics YOLO 模型保护每个站点。视觉 AI 赋能周界监控、威胁检测、车牌识别和工作场所安全。
了解更多
机器人计算机视觉

机器人计算机视觉

借助 Ultralytics YOLO 模型打造更智能的机器。机器人技术中的视觉 AI 可实现自主导航、感知、目标跟踪和实时控制。
了解更多
物流计算机视觉

物流计算机视觉

使用 Ultralytics YOLO 模型提升物流效率。视觉 AI 可实现包裹检测、分拣、车辆跟踪和仓库安全实时监控。
了解更多
零售计算机视觉

零售计算机视觉

使用 Ultralytics YOLO 模型重新构想零售。视觉 AI 为库存跟踪、货架监控、队列管理和更智能的客户洞察提供支持。
了解更多
医疗领域的计算机视觉

医疗领域的计算机视觉

使用 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可实现更快的医学影像处理、更智能的诊断和患者监护。
了解更多
制造业中的计算机视觉

制造业中的计算机视觉

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 可推动质量控制、缺陷检测、PPE 合规和装配线自动化。
了解更多
汽车行业中的计算机视觉

汽车行业中的计算机视觉

使用 Ultralytics YOLO 模型在汽车行业应用计算机视觉。视觉 AI 提升道路安全、驾驶辅助和车辆自动化水平,让道路更加智能。
了解更多
农业中的计算机视觉

农业中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 带入智能农业。为作物监测、牲畜追踪和精准农业提供支持,提升产量与智能化水平。
了解更多

让我们共同构建 AI 的未来!

开启你的机器学习未来之旅