Google Colabでtensorflowのオブジェクト検出APIを使用してオブジェクト検出器をトレーニングしました。 1日中インターネットで調査した後、モデルの評価を実行する方法に関するチュートリアルを見つけることができなかったため、mAPなどのメトリックを取得できます。
私はmodels/research/object_detectionフォルダーのeval.pyを使用する必要があることを理解しましたが、スクリプトに渡す必要のあるパラメーターがわかりません。
簡単に言うと、これまでに行ったのは、テストおよびトレーニングイメージのラベルを生成し、object_detection/imagesフォルダーに保存しました。また、train.recordおよびtest.recordファイルを生成し、labelmap.pbtxtファイルを作成しました。私はテンソルフローモデルZooのfaster_rcnn_inception_v2_cocoモデルを使用しているので、faster_rcnn_inception_v2_coco.configファイルを構成し、それをobject_detection/trainingフォルダーに保存しました。トレーニングプロセスは問題なく実行され、すべてのチェックポイントはobject_detection/trainingフォルダーにも保存されます。
モデルを評価する必要があるので、次のようにeval.pyスクリプトを実行しました。
!python eval.py --logtostderr --pipeline_config_path=training/faster_rcnn_inception_v2_pets.config --checkpoint_dir=training/ --eval_dir=eval/
よろしいですか?これは問題なく動作し始めたのですが、テンソルボードを開いたとき、2つのタブ、つまり画像とグラフしかありませんでしたが、スカラーはありませんでした。また、私はlogdir = evalでテンソルボードを実行しました。
私はテンソルフローを初めて使用するので、どんな種類の支援も歓迎します。ありがとうございました。
セットアップはよさそうだ。 Scalarsタブが他の2つのタブと一緒にロード/表示されるまで、長い間待たなければなりませんでした。評価ジョブが終了してから10分程度です。
ただし、評価ジョブの最後に、[スカラー]タブに表示されるすべてのスカラーメトリックがコンソールに出力されます。
Accumulating evaluation results...
DONE (t=1.57s).
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.434
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.693
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.470
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000
等.
model_main.py
の代わりに新しいlegacy/eval.py
スクリプトを使用する場合は、次のように呼び出すことができます。
python model_main.py --alsologtostderr --run_once --checkpoint_dir=/dir/with/checkpoint/at/one/timestamp --model_dir=eval/ --pipeline_config_path=training/faster_rcnn_inception_v2_pets.config
この新しいAPIではtrain_config
のoptimizer
フィールドが必要になることに注意してください。これは、トレーニングと評価の両方に同じものを使用しているため、おそらくpipeline.config
にすでに含まれています。
新しいmodel_main.py
を評価モードでのみ実行することを検討しているユーザー向け。設定できるパラメーターには、それを行うフラグがあります。そのフラグはcheckpoint_dir
です。過去のトレーニングチェックポイントを含むフォルダーと同じに設定すると、モデルは評価のみで実行されます。
自分のようにそれを逃したいくつかを助けることができることを願っています!乾杯、