使用tf.estimators进行Tensorflow手动评估

时间:2018-01-16 12:43:05

标签: python tensorflow

我使用Tensorflow api tf.estimator来训练和评估模型,按照in this blog的说明构建自定义估算工具,并以这种方便的方式运行流程:

run_config = tf.estimator.RunConfig(save_checkpoints_secs=save_interval_secs,
                                    keep_checkpoint_max=keep_checkpoint_max,
                                    save_summary_steps=save_summary_steps,
                                    model_dir=logdir)
estimator = tf.estimator.Estimator(model_fn=model_fn,
                                   config=run_config)
train_spec = tf.estimator.TrainSpec(input_fn=train_input_fn, max_steps=train_steps)
eval_spec = tf.estimator.EvalSpec(input_fn=eval_input_fn, steps=eval_steps, throttle_secs=eval_interval_secs)
tf.estimator.train_and_evaluate(estimator, train_spec, eval_spec)

此过程非常有效地培训和监控tf.metrics指标到Tensorboard(例如tf.metrics.accuracy)。

对于我的一个项目,我想添加一些来自独立python函数的更多(复杂)指标,并在Tensorboard中可视化它们。该函数将训练logdir作为参数(加载模型并在数据上运行),并将一些标量(或张量)返回到Tensorboard中。

最后但并非最不重要的是,该函数需要GPU资源,因此我希望在评估后调用此函数:

Train xx steps => Evaluation xx steps => Custom metrics => Train xx steps => ...

我正在考虑使用tf.summary.FileWriter和/或训练挂钩(请参阅Tensorflow documentation),但我不知道如何使用tf.estimator api以直截了当的方式使用它们。

非常感谢你的帮助!

微米。

0 个答案:

没有答案