0

ich tf.contrib.learn.Estimator bin mit einem CNN mit 20+ Schichten zu trainieren. Ich benutze GTX 1080 (8 GB) für das Training. Mein Datenmenge nicht so groß ist, aber meine GPU läuft der Speicher mit einer Chargengröße von mehr als 32 Also ich bin eine Losgröße von 16 für die Ausbildung verwendet und Auswertung der Klassifikator (GPU läuft der Speicher während Auswertung auch wenn ein batch_size ist nicht angegeben).Mit Losgröße mit TensorFlow Validation-Monitor

Jetzt ist das Problem, dass nach 100 Schritten, ich nur Training Verlust auf dem Bildschirm gedruckt bekommen. Ich möchte auch die Validierung Verlust und Genauigkeit drucken, also bin ich ein ValidationMonitor

validation_monitor = tf.contrib.learn.monitors.ValidationMonitor(
     X_test, 
     y_test, 
     every_n_steps=50) 
    # Train the model 
    classifier.fit(
     x=X_train, 
     y=y_train, 
     batch_size=8, 
     steps=20000, 
     monitors=[validation_monitor] 

ActualProblem mit: Mein Code stürzt ab (Out of Memory), wenn ich ValidationMonitor verwenden, ich denke, das Problem gelöst werden könnte, wenn Ich könnte hier auch eine Stapelgröße angeben und ich kann nicht herausfinden, wie das geht. Ich mag ValidationMonitor meine Validierungsdaten in Chargen zu bewerten, wie ich es tue manuell nach der Verwendung von classifier.evaluate Ausbildung, ist es eine Möglichkeit, das zu tun?

Antwort

1

Sie benötigen config=tf.contrib.learn.RunConfig(save_checkpoints_secs=save_checkpoints_secs) in Ihrem Modell Definition hinzuzufügen. Die save_checkpoints_secs können in save_checkpoints_steps geändert werden, nicht aber beide.

+0

Willkommen Überlauf zu stapeln. In der Hilfe oben rechts im Antwortfenster sehen Sie, wie Sie den Code formatieren. – Gary99