深圳Yolo 视觉
深圳
立即加入
词汇表

批次大小

了解批量大小如何影响机器学习训练速度和准确性。探索硬件限制并使用 AutoBatch 优化 Ultralytics YOLO26。

机器学习,特别是深度学习领域,批大小(Batch Size)指的是模型训练中一个迭代所使用的训练样本数量。由于内存限制,将整个训练数据一次性输入神经网络通常在计算上不可行,因此数据集被划分为称为批次(batches)的更小子集。模型会处理一个批次,计算误差,并通过反向传播更新其内部模型权重,然后再处理下一个批次。这个超参数在决定训练速度和学习过程的稳定性方面都起着关键作用。

批次训练的动态

批量大小的选择从根本上改变了优化算法(通常是 随机梯度下降的一种变体) 在损失景观中探索的方式。

  • 小批次大小:使用少量样本(例如8或16)会导致“嘈杂”的更新。尽管对于整个数据集来说,梯度估计的准确性较低,但这种噪声有时可以帮助模型逃离局部最小值,从而可能带来更好的泛化能力。然而,较小的批次需要每个epoch进行更多次更新,这可能会因为开销而导致实际训练时间变慢。
  • 大批量大小:更大的批量(例如128或256)能提供更准确的梯度估计,从而使损失函数收敛更平滑。它允许在现代硬件上进行大规模并行化,显著加快计算速度。然而,如果批量过大,模型可能会陷入尖锐的次优局部最小值,导致过拟合并降低对新数据的泛化能力。

硬件与内存考量

实践者通常必须根据硬件限制而不是纯粹的理论偏好来选择批处理大小。 深度学习模型,特别是像 Transformer 或高级卷积网络这样的大型架构,存储在 GPU 的显存中。

当利用 NVIDIA CUDA 进行加速时,VRAM 必须容纳模型参数、输入数据批次以及梯度计算所需的中间激活输出。如果批次大小超出可用内存,训练将因“内存不足”(OOM)错误而崩溃。通常采用 混合精度 训练等技术来减少内存使用,从而在相同硬件上允许更大的批次大小。

区分相关概念

为了有效地配置训练,区分批次大小与训练循环中的其他时间术语至关重要。

  • 批量大小与周期一个周期(Epoch)表示对整个训练数据集的一次完整遍历。批量大小决定了在该周期数据被分成多少个块。例如,如果您有 1,000 张图像,批量大小为 100,则需要 10 次迭代才能完成一个周期。
  • 批量大小与迭代一次迭代(或一步)是指处理一个批次并更新权重。训练中的总迭代次数是每个周期内的批次数量乘以总周期数。
  • 批量大小与批量归一化尽管它们名称相似,但批量归一化是一种特定的层类型,它根据当前批次的均值和方差来归一化层输入。这种技术严重依赖于批量大小;如果批量大小过小(例如 2),统计估计将变得不可靠,可能导致性能下降。

实际应用

在各行各业部署计算机视觉解决方案时,调整批量大小是例行性的必要操作。

  1. 高保真医学成像:医疗领域的 AI 领域,从业者经常处理 3D 体积数据,例如 MRI 或 CT 扫描。这些文件密度极高且占用大量内存。为了在不使系统崩溃的情况下执行医学图像分析或复杂的图像 segmentation等任务,工程师通常会将批量大小减小到非常小的数字,有时甚至为 1。在这里,优先考虑的是处理高分辨率细节,而不是原始训练速度。
  2. 工业质量控制:相反,在制造业中的人工智能领域,速度至关重要。检查传送带上产品的自动化系统需要每小时处理数千张图像。在推理过程中,工程师可能会将传入的摄像头数据聚合成更大的批次,以最大化边缘AI设备的利用率,确保实时缺陷 detect 的高吞吐量。

在Python中配置批处理大小

使用时 Ultralytics Python 软件包,设置批量大小非常简单。您可以指定一个固定的整数,或者使用动态的 batch=-1 设置,该设置利用 的 自动批处理功能 自动计算 硬件可安全处理的最大批处理量。

以下示例演示了如何使用特定批处理设置训练 YOLO26模型——该模型是当前速度与准确性方面的最新标准。

from ultralytics import YOLO

# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")

# Train on the COCO8 dataset
# batch=16 is manually set.
# Alternatively, use batch=-1 for auto-tuning based on available GPU memory.
results = model.train(data="coco8.yaml", epochs=5, batch=16)

为了管理大规模实验并可视化不同批大小如何影响您的训练指标,诸如Ultralytics Platform之类的工具提供了一个全面的环境,用于记录和比较运行。对批大小进行适当的超参数调优通常是从模型中榨取最佳性能的最后一步。

让我们一起共建AI的未来!

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