2017-05-11 3 views
1

Ich experimentiere mit TensorFlow. Ich habe gerade eine question in Bezug auf ein Problem geschrieben, mit dem es konfrontiert ist. Ich habe aber auch eine vielleicht theoretischere Frage, aber mit praktischen Konsequenzen.TensorFlow: erinnere mich an das Gewicht früherer Epochen

Beim Training der Modelle finde ich, dass die Genauigkeit variieren kann. So kann es passieren, dass die letzte Epoche nicht die beste Genauigkeit zeigt. Zum Beispiel kann ich für die Epoche N eine Genauigkeit von 85% haben, während die Genauigkeit in der letzten Epoche 65% beträgt. Ich würde gerne die Gewichte auf der N-Epoche vorhersagen.

Ich frage mich, ob es eine Möglichkeit gibt, die Gewichte Werte der Epoche mit der besten Genauigkeit für die spätere Verwendung zu erinnern?

Die erste und einfachen Ansatz Wold sein:

  1. Run N Epochen
  2. Rememberer die beste Genauigkeit
  3. Re-Start der Ausbildung, bis wir eine Epoche zu erreichen, die die gleiche Genauigkeit als die zeigt, gespeichert auf 2.
  4. Schritt Predict die aktuellen weigths

gibt es eine bessere Verwendung?

Antwort

1

Ja! Sie müssen einen saver and save your session periodically durch Ihren Trainingsprozess machen. Der Pseudo-Code-Implementierung wie folgt aussieht:

model = my_model() 
saver = tf.train.Saver() 
with tf.Session() as sess: 
    sess.run(init_op) 
    for epoch in range(NUM_EPOCHS): 
     for batch in range(NUM_BATCHES): 

      # ... train your model ... 

      if batch % VALIDATION_FREQUENCY == 0: 
       # Periodically test against a validation set. 
       error = sess.run(model.error, feed_dict=valid_dict) 
       if error < min_error: 
        min_error = error # store your best error so far 
        saver.save(sess, MODEL_PATH) # save the best-performing network so far 

Dann, wenn Sie Ihr Modell testen wollen gegen Ihre beste Ergebnis erzielt Iteration:

saver.restore(sess, MODEL_PATH) 
test_error = sess.run(model.error, feed_dict=test_dict) 

Check out this tutorial auf das Speichern und Laden metagraphs auch. Ich fand den Ladevorgang je nach Anwendungsfall etwas knifflig.

Verwandte Themen