2016-12-27 2 views
0

In TensorFlow (Python), wenn zum Diagramm eine tf.train.RMSPropOptimizer hinzugefügt wird, sind zusätzliche Variablen hinzugefügt, die Initialisierung benötigen? Wenn ja, wie kann ich darauf zugreifen und sie manuell initialisieren? (Ich würde lieber nicht tf.global_variables_initializer verwenden). Mit anderen Worten: (1) Wie kann ich entscheiden, welcher Initialisierer verwendet werden soll? (2) Wie kann ich den Initialisierungsoperator dem Graph hinzufügen, speziell für diese Variablen?Initialisierung von RMSPropOptimizer

EDIT 1:

Ich beziehe mich hier auf jede neue tf.Variable, die dem Graphen hinzugefügt wird, wenn ich die RMSPropOptimizer hinzufügen und wie es initialisiert wird (genau wie andere tf.Variable s). Ich verweise nicht auf die Argumente im Konstruktor der RMSPropOptimizer (die Hyperparameter des Modells sind).

Antwort

0

In TensorFlow (Python), wenn sie auf das Diagramm eines tf.train.RMSPropOptimizer Hinzufügen hinzugefügt zusätzliche Variablen, die Notwendigkeit der Initialisierung?

Ja.

Wenn ja, wie kann ich darauf zugreifen und sie manuell initialisieren? (Ich würde tf.global_variables_initializer lieber nicht verwenden).

Aus der Dokumentation:

tf.train.RMSPropOptimizer.__init__(learning_rate, decay=0.9, momentum=0.0, epsilon=1e-10, use_locking=False, centered=False, name='RMSProp')

Es gibt mindestens 3 (decay, momentum und epsilon).

Mit anderen Worten: (1) Wie kann ich entscheiden, welchen Initialisierer zu verwenden?

Dies habe ich keine gute Antwort - ich habe in der Klasse gesagt "einfach Adam verwenden". Das mag im Allgemeinen ein guter Rat sein, aber ich kann mir vorstellen, dass es Fälle gibt, in denen andere besser funktionieren. Dies könnte sich lohnen, online nach Blog-Posts oder Umfrage-Papers oder so etwas zu suchen.

(2) Wie kann ich den Initialisierungsoperator zum Graphen hinzufügen, speziell für diese Variablen?

Sie können sie als benannte Parameter in den Konstruktor übergeben.

+0

Was ich in meiner Frage gemeint habe, ist, ob der RMSPropOptimizer dem Diagramm neue tf.variables hinzufügt, die initialisiert werden müssen. Ich habe nicht auf die Argumente im Konstruktor verwiesen (die Hyperparameter für das Netzwerk sind). – Lior

+0

Ja, diese Variablen müssen ebenfalls initialisiert werden. –