2016-12-03 5 views
0

Ich habe vier verschiedene Modelle mit gleichen Strukturen, die als Prädiktor im "Haupt" -Problem verwendet werden. Jedes Mal im "Haupt" -Problem rufe ich einen von ihnen an, um die Vorhersage zur Verfügung zu stellen. Unter Verwendung der neuen Beobachtung aktualisiere ich außerdem die Gewichte jedes Netzwerks.Tensorflow: Laden, Zeit sparen

Derzeit, um die Modelle zu unterscheiden, ich speichere sie in vier verschiedenen ckpt Modelle, dann lade ich sie jedes Mal, um die Vorhersage zu tun oder zu aktualisieren. Wenn das Netzwerk aktualisiert wird, speichere ich es erneut.

Dieses Verfahren funktioniert gut. Das Problem ist, dass das Initialisieren der Variablen, das Laden des Modells und das erneute Speichern zu teuer ist. Jedes Mal, wenn ich das Netzwerk anrufe, um es zu aktualisieren, dauert es etwa 10 Sekunden, was etwa 1 Sekunde für das Training und die Erinnerung an die Zeit für das Initialisieren, Laden und Speichern ist.

Als eine andere Annäherung versuchte ich, das Modell im Gedächtnis zu behalten. Aber da ich einen dnn.py habe, den ich es für jedes der vier Probleme nenne, sind die Namen der Variablen, Parameter usw. gleich. Also, TensorFlow verwirrt über sie, und es funktioniert einfach nicht. Da ich vielleicht mehr als vier Prädiktoren habe (sogar wie 22), ist es nicht sinnvoll, vier verschiedene dnn.py mit unterschiedlichen Variablennamen zu erstellen.

Ich würde jede Hilfe schätzen, um das Verfahren in einer effizienten Weise zu schreiben.

Best,

Afshin

+0

Das Lesen von Variablen von der Festplatte für jeden Trainingsschritt klingt ineffizient, Sie sollten Ihr Netzwerk reorganisieren, um diese Werte im Speicher zu behalten, dh indem Sie variable_scope verwenden, um unterschiedliche Variablensätze zu trennen. –

+0

Hallo, @YaroslavBulatov - könnten Sie das in ein kopieren Antworten? Vielen Dank! – dga

Antwort

0

Lesevariablen von der Festplatte für jeden Trainingsschritt ineffizient klingt, sollten Sie Ihr Netzwerk neu zu organisieren, diese Werte im Speicher zu halten, dh durch variable_scope mit unterschiedlichen Sets von Variablen getrennt zu halten