Ultralytics YOLO を使用したモデルのトレーニング
はじめに
深層学習モデルの学習では、データを与え、正確な予測ができるようにパラメータを調整します。Ultralytics YOLO11の学習モードは、最新のハードウェア機能を最大限に活用し、オブジェクト検出モデルを効果的かつ効率的に学習できるように設計されています。このガイドでは、YOLO11の堅牢な機能セットを使用して独自のモデルの学習を開始するために必要なすべての詳細を網羅することを目指しています。
見る: Google Colabでカスタムデータセットを使用してYOLOモデルをトレーニングする方法
トレーニングに Ultralytics YOLO を選ぶ理由
YOLO11のTrainモードを選択する説得力のある理由を以下に示します。
- 効率: シングルGPUセットアップでも、複数のGPUに拡張する場合でも、ハードウェアを最大限に活用してください。
- 多様性: COCO、VOC、ImageNetなどのすぐに利用できるデータセットに加えて、カスタムデータセットでトレーニングします。
- ユーザーフレンドリー: シンプルながらも強力なCLIおよびpythonインターフェースにより、容易なトレーニング体験を実現。
- ハイパーパラメータの柔軟性: モデルのパフォーマンスを微調整するための広範なカスタマイズ可能なハイパーパラメータ。
Trainモードの主な特徴
以下は、YOLO11のTrainモードの注目すべき機能の一部です。
- 自動データセットのダウンロード: COCO、VOC、ImageNetなどの標準データセットは、初回使用時に自動的にダウンロードされます。
- マルチGPUサポート: 複数のGPUにまたがってトレーニングをシームレスに拡張し、プロセスを迅速化します。
- ハイパーパラメータ設定: YAML設定ファイルまたはCLI引数を通じてハイパーパラメータを変更するオプション。
- 可視化とモニタリング: より良い洞察を得るために、トレーニング指標のリアルタイム追跡と学習プロセスの可視化。
ヒント
- YOLO11のデータセット(COCO、VOC、ImageNetなど)は、初回使用時に自動的にダウンロードされます。つまり、
yolo train data=coco.yaml
使用例
COCO8データセットでYOLO11nを100 エポックス 画像サイズ640で実行した場合。トレーニングデバイスは、以下を使用して指定できます。 device
引数。引数が渡されない場合 GPU device=0
利用可能な場合は使用され、そうでない場合は device='cpu'
が使用されます。トレーニング引数の完全なリストについては、以下の引数のセクションを参照してください。
Windowsマルチプロセッシングエラー
Windowsでは、次のエラーが表示されることがあります: RuntimeError
トレーニングをスクリプトとして起動する場合。以下を追加します。 if __name__ == "__main__":
トレーニングコードの前にブロックして解決してください。
シングルGPUおよびCPUトレーニングの例
デバイスは自動的に決定されます。GPUが利用可能な場合はGPUが使用され(デフォルトのCUDAデバイス0)、それ以外の場合はCPUでトレーニングが開始されます。
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.yaml") # build a new model from YAML
model = YOLO("yolo11n.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo11n.yaml").load("yolo11n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolo11n.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolo11n.yaml pretrained=yolo11n.pt epochs=100 imgsz=640
Multi-GPU トレーニング
Multi-GPU トレーニングを使用すると、複数の GPU にトレーニング負荷を分散することで、利用可能なハードウェアリソースをより効率的に活用できます。この機能は、python API とコマンドラインインターフェースの両方で使用できます。Multi-GPU トレーニングを有効にするには、使用する GPU デバイス ID を指定します。
Multi-GPU トレーニングの例
2つのGPU、CUDAデバイス0と1で学習するには、次のコマンドを使用します。必要に応じてGPUを追加してください。
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load a pretrained model (recommended for training)
# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])
# Train the model with the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=0,1
# Use the two most idle GPUs
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=-1,-1
アイドルGPUトレーニング
アイドルGPUトレーニングは、マルチGPUシステムで最も使用率の低いGPUを自動的に選択し、手動でGPUを選択しなくてもリソースの使用率を最適化します。この機能は、使用率のメトリックとVRAMの空き状況に基づいて利用可能なGPUを識別します。
アイドルGPUトレーニングの例
学習に最適なアイドル状態の GPU を自動的に選択して使用するには、以下を使用します。 -1
deviceパラメータ。これは、共有コンピューティング環境または複数のユーザーがいるサーバーで特に役立ちます。
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
# Train using the single most idle GPU
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=-1)
# Train using the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
# Start training using the single most idle GPU
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=-1
# Start training using the two most idle GPUs
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=-1,-1
自動選択アルゴリズムは、次の GPU を優先します:
- より低い現在の使用率
- より多くの利用可能なメモリ(空きVRAM)
- より低い温度と消費電力
この機能は、共有コンピューティング環境や、異なるモデル間で複数のトレーニングジョブを実行する場合に特に役立ちます。システムの状態変化に自動的に適応し、手動で介入しなくても最適なリソース配分を保証します。
Apple Silicon MPSトレーニング
Ultralytics YOLOモデルにAppleシリコンチップのサポートが統合されたことで、強力なMetal Performance Shaders(MPS)フレームワークを利用するデバイス上でモデルをトレーニングできるようになりました。MPSは、Appleのカスタムシリコン上で計算および画像処理タスクを実行するための高性能な方法を提供します。
Appleシリコンチップでのトレーニングを有効にするには、トレーニングプロセスを開始するときに、デバイスとして「mps」を指定する必要があります。以下は、pythonおよびコマンドラインでこれを行う方法の例です。
MPS トレーニングの例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load a pretrained model (recommended for training)
# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
# Start training from a pretrained *.pt model using MPS
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps
Apple シリコンチップの計算能力を活用することで、トレーニングタスクのより効率的な処理が可能になります。詳細なガイダンスと高度な構成オプションについては、PyTorch MPS のドキュメントを参照してください。
中断された学習の再開
ディープラーニングモデルを扱う際、以前に保存した状態から学習を再開できる機能は非常に重要です。これは、学習プロセスが予期せず中断された場合や、新しいデータで、またはより多くのエポックでモデルの学習を継続したい場合など、さまざまなシナリオで役立ちます。
トレーニングが再開されると、Ultralytics YOLOは最後に保存されたモデルから重みをロードし、オプティマイザの状態、学習率スケジューラ、およびエポック数も復元します。これにより、中断したところからシームレスにトレーニングプロセスを続行できます。
Ultralytics YOLOでのトレーニングは、簡単に再開できます。 resume
への引数 True
呼び出すとき train
メソッド、およびへのパスを指定します。 .pt
部分的にトレーニングされたモデルの重みを含むファイル。
以下は、pythonおよびコマンドラインを使用して、中断されたトレーニングを再開する方法の例です。
トレーニング再開の例
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/last.pt") # load a partially trained model
# Resume training
results = model.train(resume=True)
# Resume an interrupted training
yolo train resume model=path/to/last.pt
設定により resume=True
、 train
関数は、'path\/to\/last.pt'ファイルに保存されている状態を使用して、中断したところからトレーニングを継続します。もし、 resume
引数が省略されたか、またはに設定されています False
、 train
関数は、新しいトレーニングセッションを開始します。
チェックポイントはデフォルトでエポックの最後に保存されるか、または固定間隔で保存されることに注意してください。 save_period
引数。したがって、トレーニングを再開するには、少なくとも1エポックを完了する必要があります。
学習設定
YOLOモデルの学習設定は、学習プロセス中に使用されるさまざまなハイパーパラメータと構成を含みます。これらの設定は、モデルの性能、速度、および精度に影響を与えます。主な学習設定には、バッチサイズ、学習率、モメンタム、および荷重減衰が含まれます。さらに、オプティマイザ、損失関数、および学習データセットの構成の選択も、学習プロセスに影響を与える可能性があります。性能を最適化するには、これらの設定を注意深く調整し、実験することが重要です。
引数 | 種類 | デフォルト | 説明 |
---|---|---|---|
model |
str |
None |
トレーニングに使用するモデルファイルを指定します。へのパスを受け入れます。 .pt 学習済みモデルまたは .yaml 構成ファイル。モデル構造の定義または重みの初期化に不可欠です。 |
data |
str |
None |
データセット構成ファイルへのパス(例: coco8.yaml )。このファイルには、トレーニングと 検証データ、クラス名、およびクラスの数が含まれています。 |
epochs |
int |
100 |
トレーニングエポックの総数。epochは、データセット全体の完全なパスを表します。この値を調整すると、トレーニング時間とモデルのパフォーマンスに影響を与える可能性があります。 |
time |
float |
None |
最長トレーニング時間(時間単位)。設定した場合、これは以下をオーバーライドします。 epochs 引数。指定された期間が経過すると、トレーニングが自動的に停止します。時間制約のあるトレーニングシナリオに役立ちます。 |
patience |
int |
100 |
早期停止によってトレーニングを停止する前に、検証メトリクスの改善なしに待機するエポック数。パフォーマンスが停滞した場合にトレーニングを停止することで、過学習を防ぐのに役立ちます。 |
batch |
int または float |
16 |
バッチサイズには、3つのモードがあります。整数として設定(例: batch=16 )、GPU メモリ使用率 60% の自動モード (batch=-1 )、または指定された使用率の割合での自動モード (batch=0.70 )。 |
imgsz |
int |
640 |
トレーニングのターゲット画像サイズ。画像は、指定された値と等しい辺を持つ正方形にサイズ変更されます( rect=False の場合)。YOLOモデルのアスペクト比は保持されますが、RTDETRでは保持されません。モデルに影響します 精度 と計算の複雑さ。 |
save |
bool |
True |
トレーニングチェックポイントと最終モデルの重みの保存を有効にします。トレーニングの再開またはモデルの展開に役立ちます。 |
save_period |
int |
-1 |
モデルのチェックポイントを保存する頻度をエポック数で指定します。-1 の値はこの機能を無効にします。長時間のトレーニングセッション中に中間モデルを保存するのに役立ちます。 |
cache |
bool |
False |
データセット画像のメモリへのキャッシュを有効にします(True /ram )、ディスク上 (disk )、または無効にします (False )。メモリ使用量は増加しますが、ディスクI/Oを削減することでトレーニング速度を向上させます。 |
device |
int または str または list |
None |
トレーニングに使用する計算デバイスを指定します。単一の GPU(device=0 )、複数の GPU (device=[0,1] )、CPU (device=cpu )、Apple シリコン用 MPS (device=mps )、または最もアイドル状態の GPU の自動選択 (device=-1 )、または複数のアイドル状態の GPU (device=[-1,-1] ) |
workers |
int |
8 |
データロード用のワーカースレッド数(per RANK マルチ GPU トレーニングの場合)。特にマルチ GPU 環境において、データの前処理とモデルへの供給速度に影響します。 |
project |
str |
None |
トレーニング出力が保存されるプロジェクトディレクトリの名前。さまざまな実験を整理して保存できます。 |
name |
str |
None |
トレーニング実行の名前。トレーニングログと出力が保存されるプロジェクトフォルダー内にサブディレクトリを作成するために使用されます。 |
exist_ok |
bool |
False |
True の場合、既存の project/name ディレクトリの上書きを許可します。手動で以前の出力をクリアする必要がなく、反復的な実験に役立ちます。 |
pretrained |
bool または str |
True |
事前トレーニング済みのモデルからトレーニングを開始するかどうかを決定します。ブール値、または重みをロードする特定のモデルへの文字列パスを指定できます。トレーニング効率とモデルのパフォーマンスを向上させます。 |
optimizer |
str |
'auto' |
トレーニング用のオプティマイザの選択肢には以下が含まれます。 SGD , Adam , AdamW , NAdam , RAdam , RMSProp など、または auto モデル構成に基づいて自動選択する場合。収束速度と安定性に影響します。 |
seed |
int |
0 |
トレーニングのランダムシードを設定し、同じ構成での実行間で結果の再現性を保証します。 |
deterministic |
bool |
True |
決定性アルゴリズムの使用を強制し、再現性を保証しますが、非決定性アルゴリズムの制限により、パフォーマンスと速度に影響を与える可能性があります。 |
single_cls |
bool |
False |
マルチクラスデータセット内のすべてのクラスを、トレーニング中に単一のクラスとして扱います。バイナリ分類タスクや、分類ではなくオブジェクトの存在に焦点を当てる場合に役立ちます。 |
classes |
list[int] |
None |
学習対象のクラスIDのリストを指定します。トレーニング中に特定のクラスを除外したり、特定のクラスに焦点を当てたりする場合に便利です。 |
rect |
bool |
False |
最小パディング戦略を有効にします。バッチ内の画像は、共通のサイズに達するように最小限にパディングされ、最長辺は imgsz と等しくなります。効率と速度が向上する可能性がありますが、モデルの精度に影響を与える可能性があります。 |
multi_scale |
bool |
False |
増減により、マルチスケールトレーニングを有効にします imgsz 最大で~の係数で 0.5 トレーニング中に、モデルがより正確になるようにトレーニングします。 imgsz 推論時に。 |
cos_lr |
bool |
False |
コサイン学習率スケジューラを利用して、エポックごとにコサインカーブに沿って学習率を調整します。これにより、より良い収束のために学習率を管理できます。 |
close_mosaic |
int |
10 |
完了前のトレーニングを安定させるために、最後の N エポックでモザイクデータ拡張を無効にします。0 に設定すると、この機能は無効になります。 |
resume |
bool |
False |
最後に保存されたチェックポイントからトレーニングを再開します。モデルの重み、オプティマイザの状態、エポック数を自動的にロードし、シームレスにトレーニングを継続します。 |
amp |
bool |
True |
自動混合精度(AMP)トレーニングを有効にし、メモリ使用量を削減し、精度への影響を最小限に抑えながらトレーニングを高速化する可能性があります。 |
fraction |
float |
1.0 |
トレーニングに使用するデータセットの割合を指定します。データセット全体の一部分のみでトレーニングできるため、実験を行う場合やリソースが限られている場合に役立ちます。 |
profile |
bool |
False |
トレーニング中にONNXおよびTensorRTの速度のプロファイリングを有効にします。これは、モデルの展開を最適化するのに役立ちます。 |
freeze |
int または list |
None |
モデルの最初の N 層、またはインデックスで指定された層を固定し、トレーニング可能なパラメーターの数を減らします。ファインチューニングまたは転移学習に役立ちます。 |
lr0 |
float |
0.01 |
初期学習率(すなわち SGD=1E-2 , Adam=1E-3 )です。この値を調整することは最適化プロセスにとって非常に重要であり、モデルの重みが更新される速度に影響を与えます。 |
lrf |
float |
0.01 |
初期レートに対する最終学習率の割合 = (lr0 * lrf ) は、スケジューラと組み合わせて使用し、時間の経過とともに学習率を調整します。 |
momentum |
float |
0.937 |
SGD のモメンタムファクター、またはAdam オプティマイザーの beta1。過去の勾配を現在の更新に組み込む際に影響します。 |
weight_decay |
float |
0.0005 |
L2 正則化項。過学習を防ぐために、大きな重みにペナルティを科します。 |
warmup_epochs |
float |
3.0 |
学習率ウォームアップのエポック数。トレーニングの初期段階を安定させるために、学習率を低い値から初期学習率まで徐々に増加させます。 |
warmup_momentum |
float |
0.8 |
ウォームアップフェーズの初期モーメンタム。ウォームアップ期間中に設定されたモーメンタムに徐々に調整されます。 |
warmup_bias_lr |
float |
0.1 |
初期エポックでのモデルのトレーニングを安定させるのに役立つ、ウォームアップフェーズ中のバイアスパラメータの学習率。 |
box |
float |
7.5 |
損失関数におけるボックス損失成分の重み。 バウンディングボックス座標の正確な予測にどれだけ重点を置くかに影響します。 |
cls |
float |
0.5 |
総損失関数における分類損失の重み。他の成分と比較して、正しいクラス予測の重要性に影響します。 |
dfl |
float |
1.5 |
特定の YOLO バージョンで細かい分類に使用される、分布焦点損失の重み。 |
pose |
float |
12.0 |
ポーズ推定用にトレーニングされたモデルにおけるポーズ損失の重み。ポーズキーポイントを正確に予測することに重点を置くことに影響します。 |
kobj |
float |
2.0 |
ポーズ推定モデルにおけるキーポイントの objectness 損失の重み。検出信頼度とポーズ精度とのバランスを取ります。 |
nbs |
int |
64 |
損失の正規化のための公称バッチサイズ。 |
overlap_mask |
bool |
True |
オブジェクトマスクをトレーニング用に単一のマスクにマージするか、各オブジェクトごとに分離しておくかを決定します。重複する場合、小さいマスクはマージ中に大きいマスクの上に重ねられます。 |
mask_ratio |
int |
4 |
セグメンテーションマスクのダウンサンプル率。トレーニング中に使用されるマスクの解像度に影響します。 |
dropout |
float |
0.0 |
分類タスクにおける正則化のためのドロップアウト率。トレーニング中にユニットをランダムに省略することで、過学習を防ぎます。 |
val |
bool |
True |
トレーニング中の検証を有効にし、別のデータセットでのモデルパフォーマンスの定期的な評価を可能にします。 |
plots |
bool |
False |
学習および検証メトリクスのプロット、予測例を生成および保存し、モデルのパフォーマンスと学習の進捗状況を視覚的に把握できるようにします。 |
バッチサイズ設定に関する注意
The batch
引数は、次の3つの方法で構成できます。
- 固定バッチサイズ: 整数値を設定します(例:
batch=16
) を使用して、バッチあたりの画像数を直接指定します。 - 自動モード(GPUメモリ60%): 以下を使用
batch=-1
CUDAメモリの使用率が約60%になるように、バッチサイズを自動的に調整します。 - 使用率による自動モード: 小数値を設定します(例:
batch=0.70
) を使用して、指定された GPU メモリ使用率の割合に基づいてバッチ サイズを調整します。
データ拡張の設定とハイパーパラメータ
データ拡張の手法は、トレーニングデータに多様性をもたらし、モデルが未知のデータに対してより良く一般化できるようにすることで、YOLOモデルのロバスト性とパフォーマンスを向上させるために不可欠です。以下の表は、各データ拡張引数の目的と効果をまとめたものです。
引数 | 種類 | デフォルト | 範囲 | 説明 |
---|---|---|---|---|
hsv_h |
float |
0.015 |
0.0 - 1.0 |
カラーホイールの割合で画像の彩度を調整し、色の多様性をもたらします。さまざまな照明条件でモデルが一般化するのに役立ちます。 |
hsv_s |
float |
0.7 |
0.0 - 1.0 |
画像の彩度を一定の割合で変更し、色の強度に影響を与えます。さまざまな環境条件をシミュレートするのに役立ちます。 |
hsv_v |
float |
0.4 |
0.0 - 1.0 |
画像の明るさを調整し、さまざまな照明条件下でモデルが良好に機能するようにします。 |
degrees |
float |
0.0 |
0.0 - 180 |
指定された角度範囲内で画像をランダムに回転させ、さまざまな方向でのオブジェクト認識に対するモデルの能力を向上させます。 |
translate |
float |
0.1 |
0.0 - 1.0 |
画像サイズの一部を水平方向および垂直方向に変換し、部分的に見えるオブジェクトの検出学習を支援します。 |
scale |
float |
0.5 |
>=0.0 |
カメラからの距離が異なるオブジェクトをシミュレートするために、画像のスケールをゲインファクターで調整します。 |
shear |
float |
0.0 |
-180 - +180 |
画像を特定の角度で傾斜させ、オブジェクトが異なる角度から見られているような効果を模倣します。 |
perspective |
float |
0.0 |
0.0 - 0.001 |
画像の遠近感をランダムに変換し、モデルが3次元空間内の物体を理解する能力を高めます。 |
flipud |
float |
0.0 |
0.0 - 1.0 |
オブジェクトの特性に影響を与えずにデータの変動性を高めながら、指定された確率で画像を上下逆さまに反転させます。 |
fliplr |
float |
0.5 |
0.0 - 1.0 |
指定された確率で画像を左右に反転させます。これは、対称的なオブジェクトを学習し、データセットの多様性を高めるのに役立ちます。 |
bgr |
float |
0.0 |
0.0 - 1.0 |
指定された確率で画像チャネルをRGBからBGRに反転させます。これは、誤ったチャネル順序に対するロバスト性を高めるのに役立ちます。 |
mosaic |
float |
1.0 |
0.0 - 1.0 |
4つのトレーニング画像を1つに結合し、さまざまなシーン構成とオブジェクトの相互作用をシミュレートします。複雑なシーン理解に非常に効果的です。 |
mixup |
float |
0.0 |
0.0 - 1.0 |
2つの画像とそのラベルをブレンドし、合成画像を作成します。ラベルノイズと視覚的な多様性を導入することで、モデルの汎化能力を高めます。 |
cutmix |
float |
0.0 |
0.0 - 1.0 |
2つの画像の部分を組み合わせて、明確な領域を維持しながら部分的なブレンドを作成します。オクルージョンシナリオを作成することにより、モデルの堅牢性を高めます。 |
copy_paste |
float |
0.0 |
0.0 - 1.0 |
Segmentation only。オブジェクトのインスタンスを増やすために、画像間でオブジェクトをコピーして貼り付けます。 |
copy_paste_mode |
str |
flip |
- | セグメンテーションのみは、以下を指定します。 copy-paste 使用する戦略。オプションは次のとおりです 'flip' および 'mixup' . |
auto_augment |
str |
randaugment |
- | 分類のみ)の定義済み拡張ポリシーを適用します。'randaugment' , 'autoaugment' 、または 'augmix' ) により、視覚的な多様性を高めてモデルのパフォーマンスを向上させます。 |
erasing |
float |
0.4 |
0.0 - 0.9 |
Classification only。モデルがより明白でない特徴に焦点を当てるように促すために、トレーニング中に画像の領域をランダムに消去します。 |
これらの設定は、データセットと当面のタスクの特定の要件を満たすように調整できます。さまざまな値を試すことで、最適なモデルパフォーマンスにつながる最適な拡張戦略を見つけることができます。
情報
トレーニング拡張操作の詳細については、リファレンスセクションをご覧ください。
ロギング
YOLO11モデルのトレーニングでは、モデルのパフォーマンスを経時的に追跡することが重要です。そこで、ロギングが役立ちます。Ultralytics YOLOは、Comet、ClearML、TensorBoardの3種類のロガーをサポートしています。
ロガーを使用するには、上記のコードスニペットのドロップダウンメニューから選択して実行します。選択したロガーがインストールされ、初期化されます。
Comet
Cometは、データサイエンティストや開発者が実験やモデルを追跡、比較、説明、最適化できるプラットフォームです。リアルタイムメトリクス、コードの差分、ハイパーパラメータの追跡などの機能を提供します。
Cometを使用するには:
例
# pip install comet_ml
import comet_ml
comet_ml.init()
Cometのアカウントにサインインし、APIキーを取得することを忘れないでください。実験を記録するには、これを環境変数またはスクリプトに追加する必要があります。
ClearML
ClearMLは、実験の追跡を自動化し、リソースの効率的な共有を支援するオープンソースプラットフォームです。チームがML作業をより効率的に管理、実行、および再現できるように設計されています。
ClearMLを使用するには:
例
# pip install clearml
import clearml
clearml.browser_login()
このスクリプトを実行した後、ブラウザでClearMLアカウントにサインインし、セッションを認証する必要があります。
TensorBoard
TensorBoard は、TensorFlow のための可視化ツールキットです。TensorFlow グラフの可視化、グラフの実行に関する定量的メトリクスのプロット、およびグラフを通過する画像のような追加データの表示が可能です。
Google ColabでTensorBoardを使用するには、次のようにします。
例
load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directory
TensorBoardをローカルで使用するには、以下のコマンドを実行し、結果を以下で確認してください。 http://localhost:6006/
.
例
tensorboard --logdir ultralytics/runs # replace with 'runs' directory
これにより、TensorBoardがロードされ、トレーニングログが保存されているディレクトリに誘導されます。
ロガーを設定した後、モデルのトレーニングに進むことができます。すべてのトレーニングメトリクスは、選択したプラットフォームに自動的に記録され、これらのログにアクセスして、モデルのパフォーマンスを長期的に監視し、異なるモデルを比較し、改善の余地がある領域を特定できます。
よくある質問
Ultralytics YOLO11 を使用して、物体検出モデルをトレーニングするにはどうすればよいですか?
Ultralytics YOLO11を使用してオブジェクト検出モデルを学習させるには、python APIまたはCLIを使用できます。以下は両方の例です。
シングルGPUおよびCPUトレーニングの例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640
詳細については、Train Settingsのセクションを参照してください。
Ultralytics YOLO11のTrainモードの主な特徴は何ですか?
Ultralytics YOLO11 の Train モードの主な機能は次のとおりです。
- 自動データセットのダウンロード: COCO、VOC、ImageNetなどの標準データセットを自動的にダウンロードします。
- マルチGPUサポート: 複数のGPUにまたがるトレーニングを拡張して、処理を高速化します。
- ハイパーパラメータ設定: YAMLファイルまたはCLI引数を通じてハイパーパラメータをカスタマイズします。
- 可視化とモニタリング: より良い洞察を得るためのトレーニング指標のリアルタイム追跡。
これらの機能により、トレーニングが効率的になり、ニーズに合わせてカスタマイズできます。詳細については、Trainモードの主な機能セクションをご覧ください。
Ultralytics YOLO11で中断されたセッションからトレーニングを再開するにはどうすればよいですか?
中断したセッションからトレーニングを再開するには、以下を設定します。 resume
への引数 True
そして、最後に保存されたチェックポイントへのパスを指定します。
トレーニング再開の例
from ultralytics import YOLO
# Load the partially trained model
model = YOLO("path/to/last.pt")
# Resume training
results = model.train(resume=True)
yolo train resume model=path/to/last.pt
詳細については、中断されたトレーニングの再開に関するセクションをご確認ください。
AppleシリコンチップでYOLO11モデルをトレーニングできますか?
はい、Ultralytics YOLO11は、Metal Performance Shaders(MPS)フレームワークを利用して、Appleシリコンチップでのトレーニングをサポートしています。トレーニングデバイスとして「mps」を指定してください。
MPS トレーニングの例
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo11n.pt")
# Train the model on Apple silicon chip (M1/M2/M3/M4)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps
詳細については、Apple Silicon MPS Trainingセクションを参照してください。
一般的なトレーニング設定は何ですか?また、それらをどのように構成しますか?
Ultralytics YOLO11では、引数を通じて、バッチサイズ、学習率、エポック数など、さまざまなトレーニング設定を構成できます。概要を以下に示します。
引数 | デフォルト | 説明 |
---|---|---|
model |
None |
トレーニング用のモデルファイルへのパス。 |
data |
None |
データセット構成ファイルへのパス(例: coco8.yaml )。 |
epochs |
100 |
トレーニングエポックの総数。 |
batch |
16 |
バッチサイズは、整数または自動モードで調整可能です。 |
imgsz |
640 |
トレーニングのターゲット画像サイズ。 |
device |
None |
トレーニング用の計算デバイス( cpu , 0 , 0,1 、または mps . |
save |
True |
トレーニングチェックポイントと最終モデルの重みの保存を有効にします。 |
トレーニング設定の詳細なガイドについては、Train Settingsセクションをご確認ください。