2017-06-08 5 views
4

Ich würde gerne verstehen, was tf.global_variables_initializer tut ein bisschen mehr im Detail. A sparse description is given here:Understanding tf.global_variables_initializer

Gibt einen Op zurück, der globale Variablen initialisiert.

Aber das hilft mir nicht wirklich. Ich weiß, dass die Operation notwendig ist, um das Diagramm zu initialisieren, aber was bedeutet das eigentlich? Ist dies der Schritt, in dem die Grafik eingehalten wird?

Antwort

5

Eine ausführlichere Beschreibung wird gegeben here.

Nur nachdem tf.global_variables_initializer() in einer Sitzung ausgeführt wurde, enthalten Ihre Variablen die Werte, die Sie bei der Deklaration angegeben haben (tf.Variable(tf.zeros(...)), tf.Variable(tf.random_normal(...)), ...).

Vom TF doc:

Aufruf tf.Variable() fügt mehrere ops dem Graphen:

  • Eine Variable, die den op Variablenwert hält.
  • Ein Initialisierungsoperator, der die Variable auf ihren Anfangswert setzt. Dies ist eigentlich ein tf.assign op.
  • Die Ops für den Anfangswert, wie z. B. die Nullen op für die Biasvariable im Beispiel, werden ebenfalls zum Graphen hinzugefügt.

Und auch:

Variableninitialisierungen laufen explizit in Ihrem Modell vor anderen ops werden müssen, kann ausgeführt werden. Der einfachste Weg, dies zu tun, besteht darin, ein Op hinzuzufügen, das alle Variableninitialisierer ausführt, und dieses Op auszuführen, bevor das Modell verwendet wird.

+0

Hallo, also, wenn Sie die Gewichte Variablen für ein neuronales Netzwerk trainieren, und dann verlassen Sie die Sitzung. Musst du sie wieder ausbilden, um sie zu führen? setzt tf.global_variables_initializer() die Gewichte auf den Anfangswert zurück? Wie können Sie die Gewichte speichern? Vielen Dank. –

+3

Sie müssen die Gewichte der Variablen auf die eine oder andere Weise festlegen. Sie müssten Ihre trainierten Gewichte mit einem tf.train.Saver in einer anderen Sitzung wiederherstellen. Global_variables_initializer setzt die Gewichtungen auf ihre Anfangswerte zurück. –