如何解释张量流中的张量板图?
How to interpret tensorboard graph in tensorflow?
我想了解张量板如何可视化图形。为此,我使用简单的线性回归。这是我的代码:
# 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吗?
- 为什么有8个张量从损失到梯度?为什么从模型到梯度有 5 个张量?
- 我没有定义变量y。 tensorboard 是否自动将 y 分配给常量?我该如何更改它?
- 为什么我的图表不显示操作之间的箭头?
非常感谢!
创建 tf.train.GradientDescentOptimizer
时,渐变会自动添加到图表中
您的代码指定 GradientDescentOptimizer 应最小化损失,这意味着它取决于损失。此外,为了最大限度地减少损失,它需要更新模型中的权重。
我不确定;你能上传图形定义吗? (您可以从会话中获取图形定义。)
我们在添加张量形状时禁用了箭头,但是很多人要求它们,所以我们会把它放回去。
顺便说一句,现在您正在将数据内联到模型中,这不是一个好的模式。在块中:
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 列表。相反,您应该考虑使用占位符。
我想了解张量板如何可视化图形。为此,我使用简单的线性回归。这是我的代码:
# 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吗?
- 为什么有8个张量从损失到梯度?为什么从模型到梯度有 5 个张量?
- 我没有定义变量y。 tensorboard 是否自动将 y 分配给常量?我该如何更改它?
- 为什么我的图表不显示操作之间的箭头?
非常感谢!
创建 tf.train.GradientDescentOptimizer
时,渐变会自动添加到图表中
您的代码指定 GradientDescentOptimizer 应最小化损失,这意味着它取决于损失。此外,为了最大限度地减少损失,它需要更新模型中的权重。
我不确定;你能上传图形定义吗? (您可以从会话中获取图形定义。)
我们在添加张量形状时禁用了箭头,但是很多人要求它们,所以我们会把它放回去。
顺便说一句,现在您正在将数据内联到模型中,这不是一个好的模式。在块中:
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 列表。相反,您应该考虑使用占位符。