2016-06-12 2 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. Я не определить градиенты в моем графике. По умолчанию он имеет тензограмму?
  2. Почему существует 8 тензоров от потери до градиентов? А почему 5 тензоров от модели до градиентов?
  3. Я не определял переменную y. Тензорно автоматически присваивает y константам? Как я могу его изменить?
  4. Почему мой график не показывает стрелки между ops?

спасибо!

ответ

4
  1. градиенты были добавлены в ваш граф автоматически при создании tf.train.GradientDescentOptimizer

  2. Ваш код указывает, что GradientDescentOptimizer следует свести к минимуму потери, что означает, что это зависит от потерь. Кроме того, чтобы свести к минимуму потерю, необходимо обновить весы в вашей модели.

  3. Я не уверен в этом; можете ли вы загрузить определение графика? (Вы можете получить график из сеанса.)

  4. Мы отключили стрелки, когда добавили в тензорные фигуры, но многие люди попросили их, поэтому мы вернем его обратно.

BTW, прямо сейчас вы вставляете свои данные в модель, которая не является хорошим образцом. В блоке:

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 опы там, просто объявить списки Python. Вместо этого вам следует рассмотреть возможность использования заполнителей.

+0

Большое спасибо. Как насчет числа тензоров в Q2? Почему там 5 и 8? – sergulaydore

+0

@dandelion: 'Мы отключили стрелки, когда добавили в тензорные фигуры, но многие люди попросили их, поэтому мы вернем его обратно. 'Теперь он добавлен? Я проверил пакет tenorflow-tensorboard pip, но у него не было этой функции. –

+0

@ dandelion: Я понял. Извините, я случайно использовал старую версию тензорного потока –