Learn how batch size impacts machine learning training speed and accuracy. Explore hardware constraints and optimize Ultralytics YOLO26 using AutoBatch.
機械学習、特に深層学習の分野において、 バッチサイズとはモデル訓練の1反復で利用される学習例の数である。 メモリ制約により計算上不可能な場合が多い全学習データを ニューラルネットワークに一括投入する代わりに、 データセットはバッチと呼ばれる小さな部分集合に分割される。 モデルは1バッチを処理し、誤差を計算した後、 バックプロパゲーションを通じて内部のモデル重みを更新し、 次のバッチへ移ります。 このハイパーパラメータは、学習速度と学習プロセスの安定性の 両方を決定する上で極めて重要な役割を果たします。
バッチサイズの選択は、最適化アルゴリズム(通常は 確率的勾配降下の変種)が 損失関数の領域をどのように探索するかを根本的に変える。
実践者は、純粋に理論的な好みではなく、ハードウェアの制約に基づいてバッチサイズを選択せざるを得ない場合が多い。 ディープラーニングモデル、特にトランスフォーマーや高度な畳み込みネットワークのような大規模アーキテクチャは、 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 、実行のログ記録と比較のための包括的な環境を提供します。バッチサイズの適切なハイパーパラメータ調整は、モデルから最高の性能を引き出す最終段階となることがよくあります。