Warum benennen wir die Variablen in Tensorflow?
In einige der Orte, die ich sah, die syntax, wo Variablen sind initialisiert, die mit Namen, manchmal sogar ohne Namen. Zum Beispiel:
# With name
var = tf.Variable(0, name="counter")
# Without
one = tf.constant(1)
Was ist der Sinn der Namensgebung der Variablen var
"counter"
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
name
parameter ist optional (Sie können erstellen von Variablen und Konstanten mit oder ohne Sie), und die variable, die Sie in Ihrem Programm verwenden, hängt nicht von ihm. Namen kann hilfreich sein, in ein paar Orte:, Wenn Sie speichern oder wiederherstellen möchten Ihren Variablen (Sie können speichern Sie Sie in eine binäre Datei nach der Berechnung). Von docs:
Dennoch haben Sie Variablen
matrix_1
,matrix_2
Sie speichert alsv1
,v2
in der Datei.Auch Namen in TensorBoard hübsch zeigen die Namen der Kanten. Sie können sogar diese Gruppe von mit dem gleichen Umfang:
Können Sie sich vorstellen, Python namespace und TensorFlow namespace wie zwei parallele Universen. Namen in TensorFlow Raum sind eigentlich die "echten" Attribute gehören zu einem TensorFlow Variablen, während die Namen in Python-Platz sind nur temporäre Zeiger zeigt auf TensorFlow Variablen, die während dieser Ausführung Ihres Skripts. Das ist der Grund, warum beim speichern und wiederherstellen von Variablen, die nur TensorFlow Namen verwendet werden, da die Python-namespace existiert nicht mehr nach Skript beendet wird, aber Tensorflow namespace ist immer noch da in Ihr gespeicherten Dateien.
Betrachten Sie das folgende use-case-code und dessen Ausgabe
Ausgabe:
'A', wie definiert in den Anwendungsbereich von f(), nicht außerhalb des Anwendungsbereichs der ich.e in run123(). Aber die default-graph zu finden, Sie mit etwas, so dass die Standard-Graphen referenziert werden können, wie erforderlich, über verschiedene Bereiche und das ist, wenn seine Namen kommt praktisch.
In der Tat, aus dem Aspekt, zur Unterscheidung von anderen Variablen, die wir völlig können das python-Namen (der linke Teil der Zuweisung zu unterzeichnen, und wir nennen die Namen wie
python name
um Verwirrung zu vermeiden. wiev
im folgenden Beispiel), um den Namen der Variablen. Jedoch, in der Programmierung, die wir in der Regel binden Sie den python-Namen zu anderen Objekten (d.h., die op in Tensorflow), zum Beispiel,Erstens, den python-Namen
v
binden die tensorielle form der ersten Zeile (tf.get_variable("v1", [3], initializer = tf.zeros_initializer)
). Dann,diev
rebind der tensor aus der zweiten Zeile (tf.get_variable("v2", [5], initializer = tf.zeros_initializer
)) und nicht zu binden, der erste tensor mehr. Wenn wir nicht geben die tensorflow Attribut namev1
undv2
wie können wir uns identifizieren der tensor aus der ersten Zeile?