Yolo 深圳
深セン
今すぐ参加
用語集

バッチサイズ

深層学習におけるバッチサイズの影響をご覧ください。トレーニング速度、メモリ使用量、およびモデルのパフォーマンスを効率的に最適化します。

バッチサイズは、機械学習の領域において極めて重要なハイパーパラメータである。 機械学習の領域において極めて重要なハイパーパラメータである。 モデルが内部パラメータを更新する前に処理する モデルが内部パラメータを更新する前に処理する学習データサンプルの数を決定する。データセット全体を一度に分析するのではなく、ディープラーニングを使用する。 ディープラーニング フレームワークは、データをバッチと呼ばれる小さなグループに分割する。この分割は、学習プロセスの安定性、計算速度 の安定性、計算速度、必要なメモリ量を決定する。 GPUが必要とするメモリ量を支配する。適切な 適切なバッチサイズを選択することは、計算効率とモデルの収束の質のバランスをとることになります。 収束の質とのバランスをとる役割を果たします。

トレーニング・ダイナミクスへの影響

バッチサイズの選択は、ニューラルネットワークの学習方法を根本的に変える。 根本的に変える。バッチサイズが を低い値に設定すると、モデルは モデルの重みの更新頻度が高くなり、勾配降下プロセス 導入する。このノイズは 最適化アルゴリズムが 最適化アルゴリズムがローカル・ミニマムから脱出し、よりロバストな解を見つけるのに役立ち、オーバーフィッティングを防ぐのに役立ちます。 オーバーフィッティングを防ぐことができる。逆に、バッチサイズ は、より正確な勾配の推定を提供し、よりスムーズで安定した更新につながります。 しかし、より多くのハードウェア・メモリを必要とし、モデルが訓練データではうまく機能するが このような場合、モデルは訓練データではうまく機能するが、未知のデータではあまり効果的でなくなる。

ハードウェアの性能がこのパラメーターの上限を決めることが多い。最近のハードウェア・アクセラレータは に詳述されている NVIDIAディープラーニング・パフォーマンス・ガイドに詳述されているような最新のハードウェア・アクセラレータは、大規模なデータ・ブロックを同時に処理するための並列コンピューティングに依存している を同時に処理する並列コンピューティングに依存している。そのため、プロセッサのアーキテクチャに合わせたバッチサイズ(通常、32、64、または64のような2のべき乗)を使用する必要があります。 を使用することで、スループットを最大化し、1エポックあたりの総トレーニング時間を短縮することができます。 エポックあたりの総トレーニング時間を短縮することができる。

実際のアプリケーション

このパラメーターの調整方法を理解することは、さまざまな業界で効果的なAIソリューションを展開するために不可欠である。 不可欠である。

  1. 高解像度医療画像:医療におけるAI ヘルスケアのAIでは、多くの場合、腫瘍などの異常を特定するために、詳細なCTスキャンやMRIを解析することがモデルに課される。 CTスキャンやMRIを詳細に分析し、腫瘍などの異常を特定する。これらの画像はファイルサイズが膨大です。 多くの画像を同時に処理しようとすると、最もパワフルなハードウェアでもビデオメモリ(VRAM)を超えてしまいます。 を超える。そのため、開業医は、クラッシュすることなく医用画像解析を容易にするために、非常に小さなバッチサイズ(例えば、1または2)を使用している。 システムをクラッシュせること を使用し、生のトレーニング速度よりも忠実度の高いデータを扱う能力を優先している。
  2. リアルタイム製造検査:逆に スマート製造環境では、スピードが が重要です。ベルトコンベア上の自動外観検査システムは、1時間に何千枚もの回路基板の画像を取り込むかもしれない。 の画像を取り込むかもしれない。推論段階(生産中の欠陥を検出する)では、システムは以下のようなバッチ推論を使用するかもしれない。 バッチ推論 を使用して、入力された画像をグループ化し、並列処理する。これにより コンピュータ・ビジョン・システムのスループットを最大化し 迅速な生産ラインと歩調を合わせることができます。

Ultralyticsバッチサイズを設定する

を使用する場合 Ultralytics Python パッケージバッチ サイズの設定は簡単である。バッチサイズは batch 引数で、重みを更新する前にモデルが見るべき画像の数を指定できます。 が重みを更新する前に見るべき画像の数を正確に指定することができます。もし -1ライブラリは オートバッチ機能 を自動的に決定します。 ハードウェアがサポートできる最大バッチサイズを自動的に決定します。

from ultralytics import YOLO

# Load the latest YOLO11 model
model = YOLO("yolo11n.pt")

# Train the model on the COCO8 dataset with a specific batch size
# A batch size of 32 balances speed and memory usage for most standard GPUs
results = model.train(data="coco8.yaml", epochs=50, batch=32)

関連概念の区別

ディープラーニングフレームワークに見られる類似の用語と「バッチサイズ」を区別することは、実務家にとって重要である。 ディープラーニングフレームワークに見られる

  • バッチサイズとエポックエポックは学習データセット全体を1回通過することを表す。 エポックとは、学習データセット全体を1回完全に通過することを意味する。バッチサイズは、その1回のエポックでデータをいくつのチャンクに分割するかを決定する。 バッチサイズは、その1つのエポック内でデータをいくつのチャンクに分割するかを決定します。例えば、サンプル数が1,000でバッチサイズが バッチサイズが100の場合、1つのエポックを完了するのに10回の反復が必要となります。
  • バッチサイズとバッチ正規化:この2つは同じ名前ですが、バッチ正規化は特定のレイヤーです、 バッチ正規化とは、安定性を向上させるためにレイヤーの入力を正規する レイヤーの入力を正規化し、安定性を向上させるために使用される。バッチ正規化の有効性は バッチ正規化の有効性はバッチサイズに依存するが(正確な統計量を計算するには十分に大きなバッチが必要)、これはネットワークアーキテクチャの構造的な要素である。 ネットワークアーキテクチャの構造的な要素であり、単なる学習設定ではない。
  • 訓練と推論のバッチ処理:訓練では、重みの学習が目標となる。推論時 推論では、バッチングは純粋にスピードの最適化である。 自律走行車のようなレイテンシーに敏感なアプリケーションでは 自律走行車のような待ち時間の影響を受けやすいアプリケーションでは、即座に応答を得るためにバッチサイズ1がよく使われる。 が使われることが多い。 データ分析タスクでは、過去のビデオ映像を一晩で処理するために 一方、データ分析タスクでは、過去のビデオ映像を一晩で処理するために大きなバッチを使用することがある。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加