2017-03-14 4 views
1

Ich muss den Graphen speichern und wiederherstellen, um das Training vom letzten Checkpoint aus fortzusetzen, funktioniert aber irgendwie nicht.Wiederherstellung, damit das Training nicht mit Tensorflow funktioniert

Ich verwende saver = tf.train.Saver(), um das Modell zu speichern. Und:

with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess: 
    # Initializing saver 
    sess.run(tf.global_variables_initializer()) 
    save_path = saver.save(sess,model_path+"/%s.ckpt"%model_name) 
    if flag == "initial_train": 
     training_loop(num_epochs) 
     flag = None 
    else: 
     new_saver = tf.train.import_meta_graph(model_path+"/%s.ckpt.meta"%model_name) 
     new_saver.restore(sess, save_path) 
     print("Model loaded") 
     training_loop(num_epochs) 

Ich weiß nicht wirklich, warum es nicht die Gewichte Import

+0

Sie speichern unbedingt vor dem Laden, sind Sie sicher, dass Sie das tun möchten? – etarion

+0

naja, wenn ich vom Checkpoint trainieren will brauche ich alle Gewichte und den Optimierer. Aber es scheint nichts zu laden – florpi

Antwort

0

Sie sind auf den folgenden Durchläufen

  1. alle Variablen initialisiert (damit sie ihre anfänglichen Zufalls haben/constant Werte) mit sess.run(tf.global_variables_initializer()
  2. Speichern der initialisierten Werte in einer Datei (saver.save(sess,model_path+"/%s.ckpt"%model_name))
  3. laden diese zufällig initial ized Werte aus dieser Datei

So laden Sie nur, was Sie auf Linie 3 & 4.

auch initialisiert und gespeichert, ich weiß nicht, wie Sie Informationen weitergeben, aber training_loop keinen Verweis bekommt an der saver und speichern Sie das Modell nicht nach der Trainingsschleife, so scheint es, dass Sie nicht Ihre Modelle irgendwo speichern.

+0

Sorry, ich habe nicht den ganzen Code geschrieben, aber innerhalb der Funktion Training_loop ich saver.save (sess, save_path, global_step = Epoche) – florpi

+0

@florpi dann hast du immer noch das erste Problem (du bist Stellen Sie einfach die zufällig initialisierten Werte wieder her, die Sie in Zeile 4 Ihres Snippets gespeichert haben. – etarion

+0

Ja, du hast recht xD tahnks! – florpi

Verwandte Themen