2017-06-03 4 views
4

Ein sehr einfaches Beispiel in Tensorflow: min (x + 1)^2 wo x ist ein Skalar. Der Code ist:Wird der Gradient im Diagramm des Tensorflusses falsch berechnet?

import tensorflow as tf 

x = tf.Variable(initial_value=3.0) 
add = tf.add(x, 1) 
y = tf.square(add) 
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01) 
train = optimizer.minimize(y) 

dann Graph auf der Festplatte

graph = tf.get_default_graph() 
writer = tf.summary.FileWriter("some/dir/to/write/events") 
writer.add_graph(graph=graph) 

schließlich visualisieren es in tensorboard schreiben, es sieht aus wie dieses

enter image description here

Frage ist, warum Knoten "Hinzufügen" ist mit Gradienten verbunden? Ich denke, da ich versuche, y zu minimieren, Knoten "Sqaure" sollte sein, ist es ein Fehler? kann jemand das erklären?

Antwort

9

Es liegt kein Fehler vor. Sie müssen nur verstehen, was ein Farbverlauf ist und wissen, wie man einen selbst berechnet. Also (x+1)^2' = 2*(x+1). Das bedeutet, dass Sie (x+1)^2 nicht berechnen müssen, um den Gradienten zu berechnen. Wenn Sie den Verlaufsbereich vergrößern, sehen Sie, dass er den Verlauf Ihres Quadrats berechnet hat und herausgefunden hat, dass dort welcher Teil des Diagramms benötigt wird: enter image description here

Hier ist ein interessanteres und intuitiveres Beispiel:

import tensorflow as tf 

x = tf.Variable(initial_value=3.0) 
y = tf.cos(x) 

train = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(y) 

with tf.Session() as sess: 
    writer = tf.summary.FileWriter('logs', sess.graph) 
    writer.close() 

Sie sollten wissen, dass cos(x)' = - sin(x). Das bedeutet, dass nur x benötigt wird, um den Gradienten zu berechnen. Und das sehen Sie in der Grafik: enter image description here

+0

Sehr cooles Beispiel! endlich kann ich den sogenannten * symbolischen * gradienten verstehen! Vielen Dank! –

+1

@ Jie.Zhou Ja, ich denke, das ist eine sehr gute Frage, die viele wichtige Themen beleuchtet: 1) wie der Graph erstellt wird, 2) wie die Gradienten in Mathematik berechnet werden und wie sie auf TF anwendbar ist –

Verwandte Themen