如何使用 estimator API 在 tensorboard 上添加更多细节
Posted
技术标签:
【中文标题】如何使用 estimator API 在 tensorboard 上添加更多细节【英文标题】:How to add more details on tensorboard using estimator API 【发布时间】:2019-01-10 14:30:07 【问题描述】:我让我的模型跟随https://www.tensorflow.org/tutorials/estimators/cnn。
我将 SummarySaverHook 添加到我的模型中
summary_hook = tf.train.SummarySaverHook(
100,
output_dir='C:/Users/dir',
summary_op=tf.summary.merge_all())
# Configure the Training Op (for TRAIN mode)
if mode == tf.estimator.ModeKeys.TRAIN:
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01)
train_op = optimizer.minimize(
loss=loss,
global_step=tf.train.get_global_step())
return tf.estimator.EstimatorSpec(mode=mode, loss=loss, train_op=train_op, training_hooks=[summary_hook])
但是当我运行一个 get only enqueue_input 图表(我不知道它是什么)和模型图时。我想要获得准确性和损失图表。
所以我想在我的张量板上提供一些细节。
-
损失和准确度字符
可以及时得到准确度图表,因为在估算器中我只有在最后一步之后才能得到准确度。
我可以在 tensorboard 中获得更多细节,比如错误的预测图像吗?但是没有 Session 和 Graph 创建,只能通过 estimator api?
【问题讨论】:
【参考方案1】:首先,你不需要使用summary_hook。您只需在指定 logits 后立即使用 tf.metrics
指定所需的指标。
logits = tf.layers.dense(inputs=dropout, units=10)
predictions =
"classes": tf.argmax(input=logits, axis=1),
"probabilities": tf.nn.softmax(logits, name="softmax_tensor")
accuracy = tf.metrics.accuracy(labels=labels, predictions=predictions['classes']
tf.summary.scalar('acc', accuracy[1])
然后把这个
tf.logging.set_verbosity(tf.logging.INFO)
在您输入之后,如果您还没有这样做。
您可以通过将eval_metric_ops = 'accuracy': accuracy
dict 插入tf.estimator.EstimatorSpec
来绘制评估指标
您可以使用tf.summary
来可视化图像、权重和偏差等。
【讨论】:
以上是关于如何使用 estimator API 在 tensorboard 上添加更多细节的主要内容,如果未能解决你的问题,请参考以下文章
如何在Tensorflow中组合feature_columns,model_to_estimator和dataset API
如何使用 tf.estimator.DNNClassifier (Scikit Flow?)
如何在 C++ 中使用 TensorFlow Estimator?