コンテンツへスキップ

YOLOv8 実験の追跡と可視化の強化Weights & Biases

のような物体検出モデルは Ultralytics YOLOv8は、多くのコンピュータ・ビジョン・アプリケーションに不可欠なものとなっている。しかし、このような複雑なモデルのトレーニング、評価、導入にはいくつかの課題があります。主要なトレーニングメトリクスの追跡、モデルバリアントの比較、モデル動作の分析、問題の検出には、大規模な計測と実験管理が必要です。

This guide showcases Ultralytics YOLOv8 integration with Weights & Biases' for enhanced experiment tracking, model-checkpointing, and visualization of model performance. It also includes instructions for setting up the integration, training, fine-tuning, and visualizing results using Weights & Biases' interactive features.

Weights & Biases

Weights & Biases 概要

Weights & Biasesは、機械学習実験の追跡、可視化、管理のために設計された最先端のMLOpsプラットフォームです。実験の完全な再現性を実現するトレーニングメトリクスの自動ロギング、合理化されたデータ分析のためのインタラクティブなUI、様々な環境にデプロイするための効率的なモデル管理ツールを備えています。

YOLOv8 トレーニングWeights & Biases

YOLOv8 トレーニング・プロセスの効率化と自動化のために、Weights & Biases 。

インストール

必要なパッケージをインストールするには

インストール

# Install the required packages for YOLOv8 and Weights & Biases
pip install --upgrade ultralytics==8.0.186 wandb

インストールプロセスに関する詳細な説明とベストプラクティスについては、YOLOv8 インストールガイドをご覧ください。YOLOv8 に必要なパッケージをインストールする際、何らかの問題が発生した場合は、解決策やヒントについて「よくある問題」ガイドを参照してください。

設定Weights & Biases

必要なパッケージをインストールしたら、次のステップはWeights & Biases 環境のセットアップです。これにはWeights & Biases アカウントの作成と、開発環境と W&B プラットフォームをスムーズに接続するために必要な API キーの取得が含まれます。

まず、ワークスペースのWeights & Biases 環境を初期化します。以下のコマンドを実行し、プロンプトの指示に従ってください。

SDKの初期セットアップ

# Initialize your Weights & Biases environment
import wandb
wandb.login()

Weights & Biases 認証ページに移動し、API キーを作成して取得します。このキーを使用して、W&B でお客様の環境を認証します。

使い方トレーニングYOLOv8 Weights & Biases

Weights & Biases を使ったYOLOv8 モデル・トレーニングの使い方の説明に入る前に、 Ultralytics が提供するYOLOv8 モデルの数々を必ずチェックしてください。これは、あなたのプロジェクトの要件に最も適切なモデルを選択するのに役立ちます。

使い方トレーニングYOLOv8 Weights & Biases

import wandb
from wandb.integration.ultralytics import add_wandb_callback

from ultralytics import YOLO

# Step 1: Initialize a Weights & Biases run
wandb.init(project="ultralytics", job_type="training")

# Step 2: Define the YOLOv8 Model and Dataset
model_name = "yolov8n"
dataset_name = "coco8.yaml"
model = YOLO(f"{model_name}.pt")

# Step 3: Add W&B Callback for Ultralytics
add_wandb_callback(model, enable_model_checkpointing=True)

# Step 4: Train and Fine-Tune the Model
model.train(project="ultralytics", data=dataset_name, epochs=5, imgsz=640)

# Step 5: Validate the Model
model.val()

# Step 6: Perform Inference and Log Results
model(["path/to/image1", "path/to/image2"])

# Step 7: Finalize the W&B Run
wandb.finish()

コードを理解する

Let's understand the steps showcased in the usage code snippet above.

  • ステップ 1:Weights & Biases ランの初期化:プロジェクト名とジョブタイプを指定し、Weights & Biases 実行を初期化することから始める。このランは、モデルのトレーニングおよび検証プロセスを追跡および管理します。

  • ステップ 2:YOLOv8 モデルとデータセットを定義する:使用したいモデル・バリアントとデータセットを指定する。YOLO モデルが、指定されたモデル・ファイルで初期化されます。

  • ステップ 3:Weights & Biases Ultralytics のコールバックを追加する:このステップは、トレーニング・メトリクスと検証結果の自動ロギングをWeights & Biases 、モデルのパフォーマンスの詳細なビューを提供するため、非常に重要です。

  • ステップ4:モデルの訓練と微調整:指定されたデータセット、エポック数、画像サイズでモデルのトレーニングを開始します。トレーニング・プロセスには、各エポックの終了時にメトリクスと予測値のロギングが含まれ、モデルの学習進捗の包括的なビューを提供します。

  • ステップ5:モデルの検証:トレーニングの後、モデルを検証する。このステップは、未知のデータに対するモデルのパフォーマンスを評価し、その汎化可能性を確保するために極めて重要である。

  • ステップ6:推論の実行と結果のログ:モデルは指定された画像に対して予測を実行します。これらの予測は、視覚的なオーバーレイと洞察とともに、インタラクティブな探索のためにW&Bテーブルに自動的に記録されます。

  • ステップ 7: W&B の実行を確定します:このステップでデータロギングを終了し、モデルのトレーニングと検証プロセスの最終状態をW&Bダッシュボードに保存します。

アウトプットを理解する

上記のコード・スニペットを実行すると、次のような主な出力が期待できる:

  • トレーニングプロセスの開始を示す一意のIDを持つ新しいランのセットアップ。
  • A concise summary of the model's structure, including the number of layers and parameters.
  • 各トレーニングエポックにおいて、box loss、cls loss、dfl loss、precision、recall、mAPスコアなどの重要なメトリクスが定期的に更新される。
  • トレーニングの最後には、モデルの推論速度や全体的な精度のメトリクスを含む詳細なメトリクスが表示されます。
  • トレーニングプロセスの詳細な分析と視覚化のためのWeights & Biases ダッシュボードへのリンク、およびローカルのログファイルの場所に関する情報。

Weights & Biases ダッシュボードの表示

使用法のコード・スニペットを実行した後、出力にある提供されたリンクからWeights & Biases (W&B) ダッシュボードにアクセスすることができます。このダッシュボードでは、YOLOv8 を使ったモデルのトレーニングプロセスを包括的に見ることができます。

Weights & Biases ダッシュボードの主な機能

  • リアルタイムのメトリクス追跡:損失、精度、検証スコアなどのメトリクスがトレーニング中にどのように変化するかを観察し、モデルチューニングのための洞察を即座に提供します。

    <div style="text-align:center;"><blockquote class="imgur-embed-pub" lang="en" data-id="a/TB76U9O"><a href="//imgur.com/D6NVnmN">Take a look at how the experiments are tracked using Weights & Biases.</a></blockquote></div><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
    
  • ハイパーパラメータの最適化:Weights & Biases は、学習率やバッチサイズなどの重要なパラメータを微調整し、YOLOv8 のパフォーマンスを向上させるのに役立ちます。

  • 比較分析:このプラットフォームでは、さまざまなモデル構成の影響を評価するために不可欠な、異なるトレーニング実行の横並び比較が可能です。

  • トレーニング進捗の視覚化:主要なメトリクスをグラフィカルに表示することで、エポック間のモデルのパフォーマンスを直感的に理解することができます。

    <div style="text-align:center;"><blockquote class="imgur-embed-pub" lang="en" data-id="a/kU5h7W4" data-context="false" ><a href="//imgur.com/a/kU5h7W4">Take a look at how Weights & Biases helps you visualize validation results.</a></blockquote></div><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
    
  • リソースモニタリング:CPU、GPU、メモリの使用状況を把握し、トレーニングプロセスの効率を最適化します。

  • モデル成果物の管理:モデルのチェックポイントにアクセスして共有し、展開やコラボレーションを容易にします。

  • Viewing Inference Results with Image Overlay: Visualize the prediction results on images using interactive overlays in Weights & Biases, providing a clear and detailed view of model performance on real-world data. For more detailed information on Weights & Biases' image overlay capabilities, check out this link.

    <div style="text-align:center;"><blockquote class="imgur-embed-pub" lang="en" data-id="a/UTSiufs" data-context="false" ><a href="//imgur.com/a/UTSiufs">Take a look at how Weights & Biases' image overlays helps visualize model inferences.</a></blockquote></div><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
    

これらの機能を使用することで、YOLOv8 モデルのトレーニングを効果的に追跡、分析、最適化し、最高のパフォーマンスと効率を実現することができます。

概要

This guide helped you explore Ultralytics' YOLOv8 integration with Weights & Biases. It illustrates the ability of this integration to efficiently track and visualize model training and prediction results.

使い方の詳細については、Weights & Biases'公式ドキュメントをご覧ください。

また、Ultralytics の統合ガイドページで、さまざまなエキサイティングな統合について詳しくご覧ください。



Created 2023-12-28, Updated 2024-06-10
Authors: glenn-jocher (8), IvorZhu331 (1), abirami-vina (1)

コメント