我正在尝试找出如何修改自定义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自定义估算器执行类似的操作?
答案 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。