Was ist der Unterschied zwischen tf.sub und nur minus-operation in tensorflow?
Ich versuche, mit Tensorflow. Hier ist ein sehr einfacher code.
train = tf.placeholder(tf.float32, [1], name="train")
W1 = tf.Variable(tf.truncated_normal([1], stddev=0.1), name="W1")
loss = tf.pow(tf.sub(train, W1), 2)
step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
Einfach ignorieren die Optimierung Teil (4. Zeile). Es dauert eine floating-Zahl und Zug-W1 so zu erhöhen Quadrat der Differenz.
Meine Frage ist einfach. Wenn ich nur minus-Zeichen anstelle von
tf.sub" als unten, was ist anders? Wird es dazu führen, dass ein Falsches Ergebnis?
loss = tf.pow(train-W1, 2)
Wenn ich es ersetzen, das Ergebnis sieht gleich aus. Wenn Sie gleich sind, warum brauchen wir, um die "tf.hinzufügen/tf.sub" Dinge?
Integrierten Backpropagation-Berechnung kann nur durchgeführt werden, durch die "tf.*" Dinge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, - und + beheben zu tf.sub ad tf.hinzufügen. Wenn man sich die tensorflow code sehen Sie, dass diese Operatoren auf tf.Variable überlastet sind mit dem tf.* Methoden.
Warum beides vorhanden ist, gehe ich von der tf.* diejenigen, die vorhanden sind, für die Konsistenz. Also sub und sagen matmul operation kann verwendet werden, in der gleichen Weise. Während der operator-überladung für die Bequemlichkeit.
(tf.sub scheint ersetzt worden zu sein, mit tf.subtrahieren)
Der einzige Vorteil, den ich sehe, ist, dass Sie können geben Sie einen name der operation, wie in:
Dies hilft bei der Identifizierung der Betrieb zu einem Fehler führt, wie der name, den Sie angeben, wird auch angezeigt:
kann es auch helfen, mit TensorBoard Verständnis. Es wäre des guten zuviel, für die meisten Menschen als python auch zeigt die Nummer der Zeile, die der Auslöser für den Fehler.