如何将 Tensorboard 添加到 Tensorflow 估算器流程中 [英] How to add Tensorboard to a Tensorflow estimator process
问题描述
我采用了所提供的鲍鱼示例,并确保我已经理解了它......好吧,我想我明白了.但是作为我正在从事的另一个估算器项目正在产生总垃圾 - 我已经尝试添加张量板,所以我可以理解发生了什么.
I have taken the supplied Abalone example and made sure I have understood it.... Well I think I do. But as another estimator project I am working on is producing total garbage - I have tried to add tensor board, so I can understand what is going on.
基本代码是https://www.tensorflow.org/extend/estimators
我添加了一个会话和一个作家
I had added a Session and a writer
# Set model params
model_params = {"learning_rate": 0.01}
with tf.Session () as sess:
# Instantiate Estimator
nn = tf.contrib.learn.Estimator(model_fn=model_fn, params=model_params)
writer = tf.summary.FileWriter ( '/tmp/ab_tf' , sess.graph)
nn.fit(x=training_set.data, y=training_set.target, steps=5000)
# Score accuracy
ev = nn.evaluate(x=test_set.data, y=test_set.target, steps=1)
And added 1 line in the model_fn function so it looks like this...
def model_fn(features, targets, mode, params):
"""Model function for Estimator."""
# Connect the first hidden layer to input layer
# (features) with relu activation
first_hidden_layer = tf.contrib.layers.relu(features, 49)
# Connect the second hidden layer to first hidden layer with relu
second_hidden_layer = tf.contrib.layers.relu(first_hidden_layer, 49)
# Connect the output layer to second hidden layer (no activation fn)
output_layer = tf.contrib.layers.linear(second_hidden_layer, 1)
# Reshape output layer to 1-dim Tensor to return predictions
predictions = tf.reshape(output_layer, [-1])
predictions_dict = {"ages": predictions}
# Calculate loss using mean squared error
loss = tf.losses.mean_squared_error(targets, predictions)
# Calculate root mean squared error as additional eval metric
eval_metric_ops = {
"rmse": tf.metrics.root_mean_squared_error(
tf.cast(targets, tf.float64), predictions)
}
train_op = tf.contrib.layers.optimize_loss(
loss=loss,
global_step=tf.contrib.framework.get_global_step(),
learning_rate=params["learning_rate"],
optimizer="SGD")
tf.summary.scalar('Loss',loss)
return model_fn_lib.ModelFnOps(
mode=mode,
predictions=predictions_dict,
loss=loss,
train_op=train_op,
eval_metric_ops=eval_metric_ops)
终于加了一个
writer.close()
当我运行代码时......我在/tmp/ab_tf 中得到一个数据文件,这个文件不是空的.但它的大小也只有 139 个字节......这意味着没有写入任何内容......
When I run the code ... I get a data file in the /tmp/ab_tf, this file is NOT null. But it also is only 139 bytes in size ... which implies nothing is being written....
当我用张量板打开它时 - 没有数据.
When I open this with tensor board - there is no data.
我做错了什么?
感谢任何输入...
推荐答案
实际上,您不需要为估算器设置摘要编写器.摘要日志将写入估算器的model_dir.
Actually, you don't need to setup a summary writer for the estimator. The summary log will be written to model_dir of the estimator.
假设您的模型目录是 './tmp/model',您可以使用 tensorboard --logdir=./tmp/model
let's say your model_dir for estimator is './tmp/model', you can view the summary by using tensorboard --logdir=./tmp/model
这篇关于如何将 Tensorboard 添加到 Tensorflow 估算器流程中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!