2017-06-22 5 views
2

Ich habe versucht, mit der kürzlich veröffentlichten Tensorflow Object Detection API zu arbeiten, und mich gefragt, wie ich eines der vortrainierten Modelle in ihrem Modell-Zoo evaluieren könnte? Ex. Wie kann ich den MAP-Wert für dieses vortrainierte Modell erhalten?Wie evaluiere ich ein vortrainiertes Modell in Tensorflow Objekterkennung api

Da die script sie zur Verfügung gestellt haben scheinen Checkpoints zu verwenden (nach ihrem documentation) Ich habe versucht, eine stumme Kopie eines Kontrollpunkt zu machen, die zur Verfügung gestellt model.ckpt.data-00000-of-00001 Modell in ihrem Modell Zoo spitz, aber eval.py didn‘ t so.

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

Ich habe Ausbildung als auf dem vortrainierter einer kurz danach, dass die Bewertung ... aber ich bin nicht sicher, ob dies mir die richtige Metrik geben würde.

Tut mir leid, wenn dies eine rudimentäre Frage ist - ich beginne gerade mit Tensorflow und wollte überprüfen, ob ich die richtigen Sachen bekomme. Würde mich über Hinweise freuen!

EDIT:

machte ich eine Checkpoint-Datei per Jonathan Antwort:

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

, die die Auswertung Skript nahm und ausgewertet, um den COCO-Datensatz verwendet wird. Doch die Auswertung gestoppt und sagte, dass es eine Form Mismatch ist:

... 
[[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] 

Was diese Form Diskrepanz verursacht haben könnte? Und wie repariere ich es?

Antwort

2

Sie können die vortrainierten Modelle durch Ausführen des Skripts eval.py evaluieren. Sie werden aufgefordert, auf eine Konfigurationsdatei (die sich im Verzeichnis samples/configs befindet) und auf einen Prüfpunkt zu zeigen. Dazu geben Sie einen Pfad in der Form ".../.../model.ckpt" an (Sie können einen beliebigen Pfad löschen) Erweiterungen wie .meta oder .data-00000-of-00001).

Sie müssen auch eine Datei mit dem Namen "Prüfpunkt" in dem Verzeichnis erstellen, das den Prüfpunkt enthält, den Sie auswerten möchten. Dann in dieser Datei schreiben die beiden folgenden Zeilen:

model_checkpoint_path: „path/to/model.ckpt“ all_model_checkpoint_paths: „path/to/model.ckpt“

(wo Sie Pfad ändern/to/angemessen)

Die Zahl, die Sie am Ende erhalten, ist die mittlere durchschnittliche Präzision, die 50% IOU als Schwellenwert für die Grenze für echte positive Werte verwendet. Dies ist etwas anders als die im Modell Zoo gemeldete Metrik, die die COCO-mAP-Metrik und die Durchschnittswerte für mehrere IOU-Werte verwendet.

+0

Danke für die Antwort Jonathan! Ich habe versucht, 'python eval.py zu laufen --logtostderr --checkpoint_dir = Pfad/zu/model.ckpt eval_dir = Pfad/zu/eval --pipeline_config_path = Pfad/zu/.config' aber das hat nicht funktioniert; um zu klären, wo ich genau hinzeige, wohin ich zeigen soll? (Zur Zeit benutze ich die .config Datei um auch auf die ckpt Datei zu zeigen) Auch nur um sicher zu sein: Ist es ein einzelner mAP Wert, den ich am Ende bekomme? – jaydee713

+0

Sie erhalten am Ende einen einzigen MAP-Wert, ja. Was Konfigurationsdateien betrifft, sieh dir dieses Verzeichnis an: https://github.com/tensorflow/models/tree/master/object_detection/samples/configs --- du musst auf die Datei in diesem Verzeichnis zeigen, die mit dem Checkpoint übereinstimmt, den du gefunden hast würde gerne auswerten. –

+0

Sorry, ist das in Bezug auf die Bewertung des Modells im Allgemeinen? Ich hatte gehofft, die Modell-Zoo-Ergebnisse zu reproduzieren. Ich konvertierte das COCO-Dataset in einen TFRecord und führte für einige Iterationen Schulungen/Evaluierungen durch, um das mAP zu erhalten .... die Informationen über den mAP-Wertunterschied waren jedoch hilfreich! – jaydee713

Verwandte Themen