メインコンテンツまでスキップ

MMDetection

Open In Colab

MMDetectionは、PyTorchに基づくオープンソースのオブジェクト検出ツールボックスであり、OpenMMLabの一部です。組み立てやすいモジュール式のAPIデザインを提供しており、カスタムオブジェクト検出やセグメンテーション開発フローを簡単に構築することができます。

Weights and Biasesは、MMDetectionに専用のMMDetWandbHookを介して直接統合されており、次のことができます。

✅ トレーニングと評価のメトリクスをロギングする。

✅ バージョン管理されたモデルのチェックポイントをロギングする。

✅ バージョン管理された検証データセットと正解のバウンディングボックスをロギングする。

✅ モデル予測のロギングと可視化。

🔥 はじめに

wandbにサインアップしてログインする

a) 無料アカウントのサインアップ

b) wandb ライブラリをpipでインストール

c) トレーニングスクリプトでログインするには、www.wandb.aiでアカウントにサインインして、[**Authorizeページ**](https://wandb.ai/authorize)で**APIキーを見つけます。**

もし、Weights and Biasesを初めて使う場合は、クイックスタートをチェックしてみてください。

pip install wandb

wandb login

MMDetWandbHookを使う方法

Weights and Biasesを使い始めるには、MMDetectionのlog_configメソッドにMMDetWandbHookを追加して、設定システムを利用します。

備考

MMDetWandbHookは、MMDetection v2.25.0以降でサポートされています。

import wandb
...

config_file = 'mmdetection/configs/path/to/config.py'
cfg = Config.fromfile(config_file)

cfg.log_config.hooks = [
dict(type='TextLoggerHook'),
dict(type='MMDetWandbHook',
init_kwargs={'project': 'mmdetection'},
interval=10,
log_checkpoint=True,
log_checkpoint_metadata=True,
num_eval_images=100,
bbox_score_thr=0.3)]
NameDescription
init_kwargs(dict) W&B runを初期化するためにwandb.initに渡される辞書。
interval(int) ロギング間隔(k回のイテレーションごと)。デフォルトは50
log_checkpoint(bool) チェックポイント間隔ごとにチェックポイントをW&Bアーティファクトとして保存します。各バージョンがチェックポイントであるモデルバージョニングに使用してください。デフォルトはFalse
log_checkpoint_metadata(bool) 検証データで計算された評価メトリクスを、現在のエポックと共に、そのチェックポイントのメタデータとしてログします。デフォルトは True
num_eval_images(int) ログされる検証画像の数。ゼロの場合、評価はログされません。デフォルトは 100
bbox_score_thr(float) バウンディングボックススコアの閾値。デフォルトは 0.3

:chart_with_upwards_trend: メトリクスのログ

MMDetWandbHookinit_kwargs引数を使って、トレーニングと評価のメトリクスのトラッキングを開始します。この引数は、キーと値のペアを持つディクショナリを受け取り、これがwandb.initに渡されて、runがどのプロジェクトにログされるかやその他のrunの機能を制御します。

init_kwargs={
'project': 'mmdetection',
'entity': 'my_team_name',
'config': {'lr': 1e-4, 'batch_size':32},
'tags': ['resnet50', 'sgd']
}

wandb.initの全ての引数については、こちらをご覧ください。

:checkered_flag: チェックポイント

MMDetWandbHooklog_checkpoint=True引数を使って、これらのチェックポイントをW&B Artifactsとして確実に保存できます。この機能は、MMCVのCheckpointHookに依存しており、チェックポイントのモデルを定期的に保存します。期間はcheckpoint_config.intervalで決定されます。

備考

すべてのW&Bアカウントには、データセットとモデル用に100 GBの無料ストレージが付属しています。

チェックポイントが左側のペインに異なるバージョンとして表示されます。ファイルタブからモデルをダウンロードするか、APIを使ってプログラムでダウンロードできます。

📣 メタデータ付きチェックポイント

log_checkpoint_metadataTrueの場合、すべてのチェックポイントバージョンには、関連するメタデータが付いています。この機能は、CheckpointHookEvalHook、またはDistEvalHookに依存します。メタデータは、チェックポイント間隔が評価間隔で割り切れる場合にのみログされます。 メタデータタブの下に表示されるログされたメタデータ。

データセットとモデル予測の可視化

データセットや特にモデル予測をインタラクティブに可視化する能力は、より良いモデルの構築やデバッグに役立ちます。MMDetWandbHookを使用することで、W&B Tablesで検証データをログし、モデル予測のバージョン管理されたW&B Tablesを作成できるようになります。

num_eval_images引数は、W&B Tablesとしてログされる検証サンプルの数を制御します。以下の点に注意してください。

  • num_eval_images=0の場合、検証データおよびモデル予測はログされません。
  • mmdet.core.train_detector APIのvalidate=Falseの場合、検証データおよびモデル予測はログされません。
  • num_eval_imagesが検証サンプルの総数よりも大きい場合、完全な検証データセットがログされます。
備考

val_dataは一度だけアップロードされます。run_<id>_predテーブルおよびその後の実行は、アップロードされたデータへの参照を使用してメモリを節約します。val_dataの新しいバージョンは、変更された場合にのみ作成されます。

次のステップ

カスタムデータセットでインスタンスセグメンテーションモデル(Mask R-CNN)をトレーニングしたい場合は、MMDetectionとWeights & Biasesを使った方法 のW&BレポートをFully Connectedでチェックしてください。

Weights & Biasesとの統合に関する質問や問題はありますか?MMDetection githubリポジトリにイシューをオープンしていただければ、対応して回答を提供いたします。:)

Was this page helpful?👍👎