2017-06-22 9 views
2

最近リリースされたTensorflowオブジェクト検出APIを試してみて、モデル動物園で提供している事前訓練されたモデルをどのように評価できるのだろうか?例。あらかじめ訓練されたモデルのmAP値を取得するにはどうすればよいですか?Tensorflowオブジェクト検出APIで事前に訓練されたモデルを評価する方法

、彼らが提供してきましたscriptは、私は彼らのモデル動物園で提供model.ckpt.data-00000-of-00001モデルを指摘したチェックポイントのダムコピーを作成しようとしましたが、eval.pyは」didnの(そのdocumentationに応じて)チェックポイントを使用しているようですので、そういうわけではない。

checkpoint 
    model_checkpoint_path: "model.ckpt.data-00000-of-00001" 

私は、その評価pretrained 1、簡単にトレーニングを検討してきました...しかし、私はこれが私の右のメトリックを与えるかはわかりません。

申し訳ありませんこれは初歩的な質問です - 私はTensorflowを始めたばかりで、正しいものを手に入れていたことを確認したかったのです。任意のポインタを感謝します!

EDIT:

model_checkpoint_path: "model.ckpt" 
all_model_checkpoint_paths: "model.ckpt" 

評価スクリプトがかかった、とCOCOデータセットを使用して評価:

私はジョナサンの答えは1としてチェックポイントファイルを作りました。しかし、評価が停止し、形状の不一致があった言った:この形状の不一致の原因となったかもしれない何

... 
[[Node: save/Assign_19 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_4/ClassPredictor/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_4/ClassPredictor/weights, save/RestoreV2_19/_15)]] 
2017-07-05 18:40:11.969641: W tensorflow/core/framework/op_kernel.cc:1158] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [1,1,256,486] rhs shape= [1,1,256,546] 
[[Node: save/Assign_19 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_4/ClassPredictor/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_4/ClassPredictor/weights, save/RestoreV2_19/_15)]] 
2017-07-05 18:40:11.969725: W tensorflow/core/framework/op_kernel.cc:1158] 
... 
Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [1,1,256,486] rhs shape= [1,1,256,546] 
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [1,1,256,486] rhs shape= [1,1,256,546] 

は?そして私はそれをどのように修正するのですか?

答えて

2

eval.pyスクリプトを実行すると、事前に計算されたモデルを評価できます。設定ファイル(samples/configsディレクトリにあります)とチェックポイントを指すように要求されます。このために、 ".../.../model.ckpt"という形式のパスを指定します( .metaや.data-00000-of-00001などの拡張機能)。

また、評価するチェックポイントを含むディレクトリ内に "checkpoint"という名前のファイルを作成する必要があります。

model_checkpoint_path:「パス/に/ model.ckpt」 all_model_checkpoint_paths:あなたがに/適切/パスを変更し、「パス/に/ model.ckpt」

(そして、そのファイル内に以下の2行を書きます)

数値は、真陽性のカットオフしきい値として50%のIOUを使用した平均平均精度です。これは、COCO mAPメトリックと複数のIOU値に対する平均を使用するモデル動物園で報告されているメトリックとわずかに異なります。

+0

返信ありがとうございました。ジョナサン! 'python eval.py --logtostderr --checkpoint_dir = path/to/model.ckpt eval_dir = path/to/eval --pipeline_config_path = path/to/.config'を実行しようとしましたが、これはうまくいきませんでした。明確にするために、正確にどこに指し示すべきかを示していますか? (現在は.configファイルを使用してckptファイルを指しています) また、最後に取得する単一のmAP値ですか? – jaydee713

+0

最後に1つのmAP値が得られます。設定ファイルに関しては、次のディレクトリをチェックしてください:https://github.com/tensorflow/models/tree/master/object_detection/samples/configs ---そのディレクトリ内のチェックポイントに一致するファイルを指す必要があります評価したい。 –

+0

申し訳ありませんが、これは一般的にモデルの評価に関してですか?モデル動物園の結果を再現したいと思っていました。私はCOCOのデータセットをTFRecordに変換し、トレーニングを実行しました/それを評価して、mapを得るための繰り返しを数回... .... map値の違いに関する情報は役に立ちました! – jaydee713

関連する問題