2015-11-13 10 views
7

Ich habe TF funktioniert gut für die CIFAR Tutorial. Ich habe den Code geändert, um die train_dir (Verzeichnis mit Checkpoint und Modelle) zu einem bekannten Speicherort zu speichern.Wie zum Anhalten/Fortsetzen des Trainings in Tensorflow

Das Tensorboard scheint mit der spezifischen train_dir gut zu funktionieren, und es ist in der Lage, mir ein Überwachungswerkzeug über die Webschnittstelle zu geben.

konnte ich cifar10_eval.py, mit dem richtigen Verzeichnis Weg laufen, ich das Ergebnis erhalten, zusammen mit einigen Warnungen .. (Es scheint, dass ich mehr GPU-Ressourcen ohne Warnung ausgeführt werden würde ...)

2015-11-13 10: 09: 30,278728: Präzisions @ 1 = 0,101

tensorflow W/core/common_runtime/executor.cc 1027] 0x7fea7c0547c0 Compute Status: abgebrochen: Enqueue Betrieb wurde abgebrochen [[ Knoten: input_producer/input_producer_EnqueueMany = QueueEnqueueMany [Tcomponents = [DT_STRING], timeout_ms = -1, _device = "/ j OB: localhost/Replika: 0/Aufgabe: 0/cpu: 0" ] (input_producer, input_producer/RandomShuffle)]]

I tensorflow/core/Kern/fifo_queue.cc: 154] Skipping enqueue Versuch abgebrochen

W Tensorfluss/Kern/Common_Runtime/Executor.cc: 1027] 0x7fea2c0024e0 Berechne Status: Abgebrochen: RandomShuffleQueue '_2_shuffle_batch/random_shuffle_queue' wird geschlossen. [[Knoten: shuffle_batch/random_shuffle_queue_enqueue = QueueEnqueue = Tcomponents = [DT_FLOAT, DT_INT32], timeout_ms = -1, _device = "/ job: localhost/replik: 0/task: 0/cpu: 0"] (shuffle_batch/random_shuffle_queue, Div/_23, Cast)]]

W tensorfluss/core/common_runtime/executor.cc: 1027] 0x7fea50003b80 Berechtigungsstatus: Abgebrochen: RandomShuffleQueue '_2_shuffle_batch/random_shuffle_queue' wird geschlossen. [[Knoten: shuffle_batch/random_shuffle_queue_enqueue = QueueEnqueue = Tcomponents = [DT_FLOAT, DT_INT32], timeout_ms = -1, _device = "/ job: localhost/replik: 0/task: 0/cpu: 0"] (shuffle_batch/random_shuffle_queue, div/_23, Guss)]]

...

Was mich zu meiner Frage bringt: Wie kann ich eine Ausbildung mit TF anhalten und fortsetzen?

Antwort

12

TensorFlow verwendet Graph-ähnliche Berechnung, Knoten (Ops) und Kanten (Variablen aka Staaten) und es bietet eine Saver für seine Vars.

So wie es verteilte Berechnung ist, können Sie einen Teil eines Graphen in einem Rechner/Prozessor und den Rest in den anderen laufen lassen, während Sie den Zustand (Vars) speichern und das nächste Mal füttern können, um Ihre Arbeit fortzusetzen.

saver.save(sess, 'my-model', global_step=0) ==> filename: 'my-model-0' 
... 
saver.save(sess, 'my-model', global_step=1000) ==> filename: 'my-model-1000' 

die später können Sie

tf.train.Saver.restore(sess, save_path) 

wiederherstellen gespeicherten Vars verwenden.

Saver Usage

+0

diesen Befehl tf.train.Saver.restore verwenden (sess, save_path) wird einen Fehler verursachen, da die Wiederherstellungsmethode eine Saver Instanz benötigt. – Kongsea

Verwandte Themen