了解批量大小如何影响机器学习训练速度和准确性。探索硬件限制并使用 AutoBatch 优化 Ultralytics YOLO26。
在机器学习,特别是深度学习领域,批大小(Batch Size)指的是模型训练中一个迭代所使用的训练样本数量。由于内存限制,将整个训练数据一次性输入神经网络通常在计算上不可行,因此数据集被划分为称为批次(batches)的更小子集。模型会处理一个批次,计算误差,并通过反向传播更新其内部模型权重,然后再处理下一个批次。这个超参数在决定训练速度和学习过程的稳定性方面都起着关键作用。
批量大小的选择从根本上改变了优化算法(通常是 随机梯度下降的一种变体) 在损失景观中探索的方式。
实践者通常必须根据硬件限制而不是纯粹的理论偏好来选择批处理大小。 深度学习模型,特别是像 Transformer 或高级卷积网络这样的大型架构,存储在 GPU 的显存中。
当利用 NVIDIA CUDA 进行加速时,VRAM 必须容纳模型参数、输入数据批次以及梯度计算所需的中间激活输出。如果批次大小超出可用内存,训练将因“内存不足”(OOM)错误而崩溃。通常采用 混合精度 训练等技术来减少内存使用,从而在相同硬件上允许更大的批次大小。
为了有效地配置训练,区分批次大小与训练循环中的其他时间术语至关重要。
在各行各业部署计算机视觉解决方案时,调整批量大小是例行性的必要操作。
使用时 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之类的工具提供了一个全面的环境,用于记录和比较运行。对批大小进行适当的超参数调优通常是从模型中榨取最佳性能的最后一步。

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