2016-06-12 87 views
2

我想了解张量板如何可视化图形。我正在使用一个简单的线性回归来达到这个目的。这里是我的代码:如何解释张量流中的张量图?

# LINEAR REGRESSION IN TENSORFLOW 

# generate points 
import numpy as np 
import os 
import time 
import tensorflow as tf 

num_points = 1000 
vectors_set = [] 
for i in xrange(num_points): 
    x1 = np.random.normal(0.0, 0.55) 
    y1 = x1 * 0.1 + 0.3 + np.random.normal(0.0, 0.03) 
    vectors_set.append([x1, y1]) 

with tf.name_scope('data') as scope: 
    x_data = [v[0] for v in vectors_set] 
    y_data = [v[1] for v in vectors_set] 

# Cost function and gradient descent algorithm 
with tf.name_scope('model') as scope: 
    W = tf.Variable(tf.random_uniform([1], -1, 1), name = "W") 
    b = tf.Variable(tf.zeros([1]), name = "b") 
    z = tf.add(W * x_data, b, name = "z") 

with tf.name_scope('loss') as scope: 
    loss = tf.reduce_mean(tf.square(z - y_data)) 

optimizer = tf.train.GradientDescentOptimizer(0.5) 
train = optimizer.minimize(loss) 

# Running the algorithm 
init = tf.initialize_all_variables() 

sess = tf.Session() 
sess.run(init) 

timestamp = str(int(time.time())) 
print timestamp 
train_summary_writer = tf.train.SummaryWriter(
     os.path.join(
      "./", "summaries", timestamp), sess.graph) 
train_summary_writer.add_graph(sess.graph) 

这里是tensorboard可视化: enter image description here

我的问题是:

  1. 我没有在我的图表定义梯度。它是否与tensorboard默认?
  2. 为什么有8个张量从损失到渐变?为什么5个张量从模型到渐变?
  3. 我没有定义变量y。 tensorboard会自动将y分配给常量吗?我该如何改变它?
  4. 为什么我的图表不显示ops之间的箭头?

非常感谢!当你创建了一个tf.train.GradientDescentOptimizer

  • 你的代码指定GradientDescentOptimizer应尽量减少损失,这意味着它取决于损失

  • 回答

    4
    1. 梯度添加到您的图形自动。此外,为了最大限度地减少损失,它需要更新模型中的权重。

    2. 我不确定;你能上传图形定义吗? (您可以从会话中获得图表def)。

    3. 当我们添加张量形状时,我们禁用了箭头,但很多人都要求它们,所以我们将它放回去。

    顺便说一句,现在你正在将数据内联到模型中,这不是一个好的模式。在块:

    with tf.name_scope('data') as scope: 
        x_data = [v[0] for v in vectors_set] 
        y_data = [v[1] for v in vectors_set] 
    

    的name_scope没有做任何事情,因为你没有创建任何tensorflow OPS那里,只是宣布Python列表。相反,你应该考虑使用占位符。

    +0

    非常感谢。 Q2的张量怎么样?为什么有5和8? – sergulaydore

    +0

    @dandelion:'当我们添加张量形状时,我们已经禁用了箭头,但很多人都要求它们,所以我们会放回去。“现在是否添加了?我检查了tensorflow-tensorboard pip软件包,但它没有这个功能。 –

    +0

    @dandelion:我明白了。对不起,我意外地使用了tensorflow的旧版本 –