修改tf.estimator.Estimator如何为Tensorboard创建摘要

时间:2018-07-13 09:49:22

标签: tensorboard tensorflow-estimator

我正在尝试找出如何修改自定义TensorFlow估算器为Tensorboard创建事件文件的方式。当前,我的印象是,默认情况下,模型中每100个步骤都会创建一个摘要(包含我使用tf.summary.scalar(...)遵循的所有事物的值(通常是准确性)。目录。 tensorboard以后使用的事件文件的名称看起来像 events.out.tfevents.1531418661.mycomputer。

我在线找到了一个例程来更改此行为,并为每次运行创建带有计算日期和时间的目录,但是它使用了TensorFlow基本API:

logdir = "tensorboard/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S") + "/"
writer = tf.summary.FileWriter(logdir, sess.graph)

是否可以使用TF自定义估算器执行类似的操作?

2 个答案:

答案 0 :(得分:1)

可以使用name的{​​{3}}方法的tf.estimator.Estimator参数为每次评估运行指定一个目录,例如:

estimator = tf.estimator.Estimator(
    model_fn=model_fn,
    model_dir=model_dir
)
eval_results = estimator.evaluate(
            input_fn=eval_input_fn,
            name=eval_name
            )

此评估的事件文件将保存在model_dir内名为"eval_" + eval_name的目录中。

答案 1 :(得分:-1)

TensorFlow估算器不需要摘要编写器。调用model_dir方法时,使用tf.Estimator函数的tf.Estimator.fit()属性的模型的摘要日志被写入指定的文件夹位置。

在下面的示例中,用于存储训练日志的所选目录为'./my_model'

tf.estimator.DNNClassifier(
    model_fn,
    model_dir='./my_model',
    config=None,
    params=None,
    warm_start_from=None
)

通过从终端运行tensorboard --logdir=./my_model启动TensorBoard。