张量流中的一个非常简单的示例:min (x + 1)^2
其中x
是标量。代码是:
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)
然后将图形写入磁盘
graph = tf.get_default_graph()
writer = tf.summary.FileWriter("some/dir/to/write/events")
writer.add_graph(graph=graph)
最终在张量板中显示它,它看起来像这样
问题是,为什么节点"添加"是否与渐变有关?我想,因为我试图最小化y,node" Square"应该是,这是一个错误吗?任何人都可以解释一下吗?
答案 0 :(得分:25)
不涉及任何错误。你只需要了解什么是渐变,并知道如何自己计算。所以(x+1)^2' = 2*(x+1)
。这意味着您无需计算(x+1)^2
来计算渐变。如果您要放大渐变部分,您会看到它计算了方形的渐变,并发现它在那里需要图形的哪一部分:
这是一个更有趣,更直观的例子:
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()