2016-06-12 119 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的舊版本 –