了解批量大小如何影响机器学习训练速度和准确性。探索硬件限制,并使用AutoBatch优化Ultralytics 。
在机器学习领域,尤其是深度学习中, 批量大小指每次模型训练迭代中使用的训练样本数量。 由于内存限制,通常无法将全部训练数据一次性输入神经网络, 因此数据集会被划分为称为批次的较小子集。 模型处理一个批次后,会计算误差并通过反向传播更新内部模型权重, 随后才处理下一个批次。 该超参数对训练速度和学习过程的稳定性具有决定性影响。
批量大小的选择从根本上改变了优化算法(通常是随机梯度下降的变体)在损失函数空间中的探索方式。
实践者通常需要根据硬件限制而非纯粹理论偏好来选择批量大小。 深度学习模型——尤其是变压器或高级卷积网络等大型架构——存储在显存中。 GPU。
在使用 NVIDIA CUDA 进行加速时,显存必须同时容纳 模型参数、输入数据批次以及梯度计算所需的中间激活输出。若 批次大小超过可用内存,训练将因"内存不足"(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 提供了全面的环境来记录和比较运行结果。对批量大小进行恰当的超参数调优,通常是榨取模型最佳性能的最后一步。