Ultralytics YOLOv5 モデル最適化のためにUltralytics Comet どのように提携しているかをご覧ください:リアルタイムの追跡、合理化されたコラボレーション、再現性の向上。

Ultralytics YOLOv5 モデル最適化のためにUltralytics Comet どのように提携しているかをご覧ください:リアルタイムの追跡、合理化されたコラボレーション、再現性の向上。

Ultralytics 、YOLOv5ような素晴らしいオープンソースツールの研究開発に資金を提供するために、他のスタートアップ企業と商業的に提携しています。この記事には、それらのパートナーへのアフィリエイトリンクが含まれている場合があります。
最新のパートナー Cometは、データサイエンティスト、エンジニア、チームリーダーが機械学習やディープラーニングモデルを加速・最適化するためのツールを開発しています。
Comet 、モデル、データセット、メトリクスを追跡するための強力なツールです。システム変数や環境変数のログまで記録し、実行のたびに再現性とスムーズなデバッグを保証します。まるで、どのようなメモを残すべきかを魔法のように知っているバーチャル・アシスタントを持つようなものです。モデルのメトリクスをリアルタイムで追跡・可視化し、ハイパーパラメータ、データセット、モデルのチェックポイントを保存し、Comet カスタムパネルでモデルの予測を可視化します!
さらに、Comet 、作業track 見失うことなく、あらゆる規模のチーム間で結果を共有し、コラボレーションすることを容易にします!
YOLOv5は、コンピュータ・ビジョンの旅の出発点として最適です。モデルのパフォーマンスを向上させ、生産可能な状態にするには、次のような実験追跡ツールで結果を記録する必要があります。 Comet.
Comet YOLOv5 統合は、3つの主な機能を提供する:
このガイドでは、YOLOv5 Comet使い方を説明する。
あなたの実験をリアルタイムでtrack する準備はできましたか?さっそく始めよう!
cometインストールする
を使用してComet 設定するには、2つの方法があります。 YOLOv5.
環境変数で認証情報を設定するか、作業ディレクトリにcomet.config ファイルを作成し、そこで認証情報を設定します。
exportCOMET COMET# デフォルトはyolov5' です。
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
#COCO128 上で YOLOv5s を 5 エポック学習させるspython train.py --img 640 --batch 16 --epochs 5 --data coco128yaml --weights yolov5s.pt
以上です!
Comet 、ハイパーパラメータ、コマンドライン引数、トレーニング、検証メトリクスを自動的に記録します。Comet UIで実行結果を可視化し、分析することができます。

完了した実行例はこちらをご覧ください。
さらに良いのは、こちらのColab Notebookでお試しいただくことです。
デフォルトでは、Comet 以下の項目を記録する:
Comet 、トレーニングスクリプトまたは環境変数に渡されるコマンドラインフラグによって、追加データをログに記録するように設定することができます。
exportCOMET#Comet 'オンライン'または'オフライン'モードのどちらで実行するかを設定します.デフォルトはonlineexportCOMET# 保存されるモデルの名前を設定します.デフォルトはyolov5exportCOMET#Comet コンフュージョンマトリックスのログを記録しないように設定します.デフォルトはtrueexportCOMET#Comet記録する画像の予測総数を制御します.デフォルトは100です。exportCOMET# 学習の終了時に、検出された各クラスの評価メトリクスをログに記録するように設定します。デフォルトはfalseです。 exportCOMET# 別のチェックポイントからトレーニングを再開したい場合に設定します。デフォルトは 'last.pt'exportCOMET# バッチレベルでトレーニングメトリクスのログを記録したい場合に設定します。デフォルトはfalseです。 exportCOMET# モデルの予測をログに記録しない場合は、falseに設定します。
Comet モデルのログはデフォルトでは無効になっています。これを有効にするには、トレーニングスクリプトにsave-period引数を渡します。
python train.py \
--img 640 ˶
--batch 16 ˶
--epochs 5 ˶
--data coco128yaml ˶
--weights yolov5s.pt ˶
--save-period 1
デフォルトでは、モデルの予測(画像、グランドトゥルース・ラベル、バウンディングボックス)がCometログされます。bboxコマンドライン引数を渡すことで、ログに記録される予測と関連する画像の頻度を制御できます。予測は、Cometオブジェクト検出カスタムパネルを使用して視覚化できます。この頻度は、エポックごとのデータのN番目のバッチごとに対応します。以下の例では、各エポックの2バッチ目ごとにデータを記録しています。
注:YOLOv5 検証データローダーは、デフォルトでバッチサイズを32に設定するので、それに応じてロギング頻度を設定する必要がある。
これはPanelを使用したプロジェクトの例です。
python train.py ¦--img 640 ¦--batch 16 ¦--epochs 5 ¦--data coco128yaml ¦--weights yolov5s.ptbbox 2
YOLOv5予測をログに記録する場合、Comet 各予測セットに関連する画像をログに記録します。デフォルトでは、最大100の検証画像がログに記録されます。この数は、COMET環境変数を使用して増減できます。
envCOMET train.py ˶--img 640 ˶--batch 16 ˶--epochs 5 ˶--data coco128yaml ˶--weights yolov5s.ptbbox 1
COMET 環境変数を使用して、各クラスのmAP、precision、recall、および f1 を記録します。
envCOMET python train.py ˶--img 640 ˶--batch 16 ˶--epochs 5 ˶--data coco128yaml ˶--weights yolov5s.pt
Comet Artifactsを使用してデータを保存したい場合は、upload_datasetフラグを使用して保存できます。
データセットは、YOLOv5 ドキュメントに記述されている方法で構成されている。データセットのconfigyaml ファイルは、coco128yaml ファイルと同じ書式に従わなければならない。
python train.py ¦--img 640 ¦--batch 16 ¦--epochs 5 ¦--data coco128yaml ¦--weights yolov5s.pt ¦--upload_dataset
アップロードされたデータセットは、Comet ワークスペースのArtifactsタブにあります。

Comet UIで直接データをプレビューできます。

アーティファクトはバージョン管理され、データセットに関するメタデータの追加もサポートしています。Comet データセットのyaml ファイルからメタデータを自動的に記録します。

Comet データセットを使用したい場合は、データセットyaml ファイルのパス変数を設定して、以下のアーティファクトリソースURLを指すようにします。
# artifactyaml ファイルの内容 パス:comet:///:"
次に、このファイルを次の方法でトレーニングスクリプトに渡します。
python train.py ¦--img 640 ¦--batch 16 ¦--epochs 5 ¦--data artifactyaml ¦--weights yolov5s.pt
アーティファクトは、実験ワークフローを流れるデータの系譜をtrack することもできます。ここでは、アップロードしたデータセットを使用したすべての実験を示すグラフを見ることができます。

インターネット接続が切断されるなど、何らかの理由でトレーニングランが中断された場合、再開フラグとComet 使用してランを再開することができます。
ランパスは以下のフォーマットであるcomet
これには、チェックポイントからのモデルの復元、すべてのハイパーパラメータとトレーニング引数の復元、Comet データセットアーティファクトのダウンロード(元の実行で使用されていた場合)が含まれます。再開された実行は、Comet UIの既存のExperimentへのログを継続します。
python train.py ¶--resumecomet://"
YOLOv5 5はCometオプティマイザーとも統合されており、Comet UIでハイパーパラメータースイープを簡単に視覚化できる。
Comet 設定するには、スイープに関する情報を含むJSONファイルを作成する必要があります。
サンプルファイルは以下にあります:
comet.jsonpython comet.pycomet"comet.json"
hpo.pyスクリプトは、train.pyと同じ引数を受け入れます。スイープに追加の引数を渡したい場合は、スクリプトの後に追加してください。
python comet.pycomet"comet.json" ˶--save-period 1bbox 1
comet optimizer -jcomet.pycomet.json"
Comet 、スイープの結果を視覚化するさまざまな方法を提供します。掃引が完了したプロジェクトをご覧ください:

Comet統合により、YOLOv5 モデルの管理、可視化、最適化が可能になります。
YOLOv5 トレーニング、検証、導入に関する質問やヒントを共有する場ですUltralytics