Ich versuche, die Objekterkennungs-API lokal auszuführen.
Ich glaube, ich habe alles wie in den TensorFlow Object Detection API -Dokumenten beschrieben eingerichtet. Wenn ich jedoch model_main.py ausführen möchte, wird diese Warnung angezeigt und das Modell trainiert nicht. (Ich kann nicht genau sagen, ob das Modell trainiert oder nicht, da der Prozess nicht beendet wird, aber keine weiteren Protokolle angezeigt werden.)
WARNUNG: Tensorflow: Estimator's model_fn (.model_fn bei 0x0000024BDBB3D158>) enthält Params-Argument, aber Params werden nicht an Estimator übergeben.
Der Code, den ich weitergebe, lautet:
python tensorflow-models/research/object_detection/model_main.py \
--model_dir=training \
--pipeline_config_path=ssd_mobilenet_v1_coco.config \
--checkpoint_dir=ssd_mobilenet_v1_coco_2017_11_17/model.ckpt \
--num_tain_steps=2000 \
--num_eval_steps=200 \
--alsologtostderr
Was könnte diese Warnung auslösen?
Warum scheint der Code stecken zu bleiben?
Bitte helfen
Ich bin auf das gleiche Problem gestoßen und habe festgestellt, dass diese Warnung nichts mit dem Problem zu tun hat, dass das Modell nicht funktioniert. Ich kann das Modell arbeiten lassen, da diese Warnung angezeigt wird.
Mein Fehler war, dass ich die Zeile im Dokument von running_locally.md falsch verstanden habe
"$ {MODEL_DIR} zeigt auf das Verzeichnis, in das Trainingsprüfpunkte und Ereignisse geschrieben werden"
Ich habe MODEL_DIR in {project directory}/models/model
geändert, wobei die Struktur des Verzeichnisses lautet:
+data
-label_map file
-train TFRecord file
-eval TFRecord file
+models
+ model
-pipeline config file
+train
+eval
Und es hat funktioniert. Ich hoffe, das kann dir helfen.
Dein Skript scheint gut zu sein. Eine Sache, die wir beachten sollten, ist, dass das neue model_main.py das Trainingsprotokoll (wie Trainingsschritt, lr, Verlust usw.) nicht druckt. Es wird nur das Evaluierungsergebnis nach einer oder mehreren Epochen gedruckt wird eine lange zeit sein.
"Der Prozess wird nicht beendet, aber es erscheinen keine weiteren Protokolle" ist normal. Sie können den Betrieb mit "nvidia-smi" überprüfen, um die GPU-Situation zu überprüfen, oder Tensorboard verwenden, um dies zu überprüfen.
Ich bin auch auf diese Warnmeldung gestoßen. Ich überprüfte nvidia-smi
und es schien, als hätte das Training noch nicht begonnen. Es wurde auch versucht, das Ausgabeverzeichnis neu zu organisieren, und es hat nicht funktioniert. Nach dem Auschecken Konfigurieren der Schulungspipeline für die Objekterkennung (tensorflow official) habe ich festgestellt, dass es ein Konfigurationsproblem war. Das Problem wurde durch Hinzufügen von load_all_detection_checkpoint_vars: true
gelöst.
Ich habe auch diesen Fehler erhalten, und zwar weil ich zuvor ein Modell mit einer anderen Datensatz-/Modell-/Konfigurationsdatei trainiert hatte und die vorherigen ckpt-Dateien noch in dem Verzeichnis vorhanden waren, in dem ich arbeitete, und die alten ckpt-Trainingsdaten in eine andere verschieben Verzeichnis behoben das Problem