In meinem aktuellen Projekt trainiere ich ein Modell und speichere Prüfpunkte alle 100 Iterationsschritte. Die Prüfpunktdateien werden alle im selben Verzeichnis gespeichert (model.ckpt-100, model.ckpt-200, model.ckpt-300 usw.). Und danach möchte ich das Modell basierend auf Validierungsdaten für alle gespeicherten Checkpoints evaluieren, nicht nur das neueste.Tensorflow: Modellbewertung über mehrere Prüfpunkte ausführen
Derzeit Code mein Stück die Prüfpunktdatei für die Wiederherstellung sieht wie folgt aus:
ckpt = tf.train.get_checkpoint_state(FLAGS.checkpoint_dir)
ckpt_list = saver.last_checkpoints
print(ckpt_list)
if ckpt and ckpt.model_checkpoint_path:
print("Reading model parameters from %s" % ckpt.model_checkpoint_path)
saver.restore(sess, ckpt.model_checkpoint_path)
# extract global_step from it.
global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1]
print('Succesfully loaded model from %s at step=%s.' %
(ckpt.model_checkpoint_path, global_step))
else:
print('No checkpoint file found')
return
Dies ist jedoch nur die zuletzt gespeicherte Datei Prüfpunkt wieder her. Wie schreibe ich eine Schleife über alle gespeicherten Prüfpunktdateien? Ich habe versucht, eine Liste der Checkpoint-Dateien mit saver.last_checkpoints zu erhalten, aber die zurückgegebene Liste ist leer.
Jede Hilfe wäre sehr geschätzt, danke im Voraus!
Wie speichern Sie das Modell genau? Bilden Sie den Namen für die Ausgabedatei selbst oder verwenden Sie den Parameter 'global_step' beim Aufruf von' saver.save (..) '? – kaufmanu