敬请关注 YOLO Vision 2025!
2025年9月25日
英国夏令时 10:00 - 18:00
混合活动
Yolo Vision 2024
词汇表

批次大小

了解批量大小对深度学习的影响。有效地优化训练速度、内存使用和模型性能。

批量大小是机器学习中的一个基本超参数,它定义了在更新模型内部参数之前处理的训练样本数量。数据不是一次性处理整个训练数据集(这在计算上可能是禁止的),而是被分成更小的子集或“批次”。批量大小的选择是一个关键的决定,它直接影响模型的学习动态、训练速度和最终性能。它代表了计算效率和用于更新模型权重的梯度估计的准确性之间的权衡。

批量大小在模型训练中的作用

在训练期间,神经网络 (NN)通过根据其产生的误差调整其权重来进行学习。这种调整由诸如梯度下降之类的优化算法引导。批量大小决定了模型在计算梯度并执行权重更新之前“看到”多少个示例。

  • 随机梯度下降 (SGD): 当批量大小为 1 时,该过程称为随机梯度下降。为每个单独的样本计算梯度,从而导致频繁但嘈杂的更新。
  • 批量梯度下降: 当批量大小等于训练数据集中的样本总数时,称为批量梯度下降。 这种方法可以提供非常精确的梯度估计,但计算成本高且占用大量内存。
  • 小批量梯度下降: 这是最常见的方法,其中批次大小设置为 1 到总数据集大小之间的值(例如,32、64、128)。它提供了批量梯度下降的稳定性和随机梯度下降的效率之间的平衡。

批次大小的选择对训练过程有显著影响。较大的批次大小可以提供更准确的梯度估计,但每次更新的计算成本更高。相反,较小的批次大小会导致不太准确的梯度估计,但允许更快速的更新。

选择合适的批次大小

找到最佳的批次大小是超参数调优的关键部分,它取决于数据集、模型架构和可用的硬件。

  • 大批量尺寸: 一次处理更多数据可以充分利用GPU的并行处理能力,从而缩短每个epoch的训练时间。然而,研究表明,非常大的批量有时会导致“泛化差距”,即模型在训练数据上表现良好,但在未见过的数据上表现不佳。它们还需要大量的内存,这可能是一个限制因素。
  • 小批量尺寸: 它们需要更少的内存,并且通常会带来更好的模型泛化效果,因为梯度更新中的噪声可以帮助模型逃脱局部最小值并找到更稳健的解决方案。这有助于防止过拟合。主要的缺点是训练速度较慢,因为权重更新更频繁,并且并行处理的数据较少。

对于许多应用来说,建议使用 2 的幂次方作为批量大小(如 32、64、128、256),因为它们通常与 GPU 内存架构 良好对齐。像 Ultralytics HUB 这样的工具,可以在 训练模型 时轻松地试验不同的批量大小。

训练与推理中的批量大小

虽然批量大小是训练中的一个核心概念,但它也适用于推理,只是目的不同。在推理过程中,批量处理用于同时处理多个输入(例如,图像或句子),以最大化吞吐量。这通常被称为批量推理

对于需要立即获得结果的应用,例如自动驾驶汽车中的实时推理,使用批量大小为 1 可以最大限度地减少推理延迟。在离线场景中,例如隔夜处理大量图像,可以使用较大的批量大小来提高效率。

实际应用

  1. 医学影像分析: 在训练用于医学图像中肿瘤检测YOLO11 模型时,图像通常是高分辨率的。由于 GPU 上的内存限制,通常使用较小的批次大小(例如,4 或 8)。这允许模型在高细节数据上进行训练,而不会超过可用内存,从而确保稳定的训练。
  2. 制造质量控制:在制造中的 AI 设置中,可以训练模型来检测装配线上的缺陷。对于包含数百万张产品图像的大型数据集,可以在强大的分布式训练集群上使用更大的批量大小(例如,256 或 512)。这加快了训练过程,从而可以更快地进行模型迭代和部署。

批量大小与相关术语

区分批大小和其他相关概念非常重要:

  • 批量大小 vs. Epoch 和 IterationIteration(迭代)是模型权重的一次更新。Epoch(轮次)是对整个训练数据集的一次完整传递。 一个 epoch 中的迭代次数是训练样本总数除以批量大小。
  • 批量大小 vs. 批量归一化批量归一化 (BatchNorm)是一种在神经网络层中使用的技术,用于标准化每个小批量的输入。 虽然其有效性会受到批量大小的影响(较大的批量效果更好),但它是模型架构中一个独特的层,而不是训练循环参数。 大多数现代深度学习框架(如PyTorchTensorFlow)都提供了强大的实现。

加入 Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入
链接已复制到剪贴板