【问题标题】:How to control frequency of loss logging messages when using tf.Estimator使用 tf.Estimator 时如何控制丢失日志消息的频率
【发布时间】:2018-05-10 00:13:05
【问题描述】:

我使用的是 TF 1.4。 我的问题是关于 tf.estimator.Estimator。

我想控制“丢失和步进”信息消息的频率,例如:

INFO:tensorflow:loss = 0.00896569, step = 14901 (14.937 sec)

我将 tf.estimator.RunConfig 传递给 Estimator 的构造函数。但我不认为有一个参数可以控制“丢失和步进”消息。

我认为参数是在estimator.py中硬编码的,在_train_model方法中:

      worker_hooks.extend([
      training.NanTensorHook(estimator_spec.loss),
      training.LoggingTensorHook(
          {
              'loss': estimator_spec.loss,
              'step': global_step_tensor
          },
          every_n_iter=100)
  ])

【问题讨论】:

    标签: tensorflow tensorflow-estimator


    【解决方案1】:

    tensorflow v1.8 支持log_step_count_steps:https://www.tensorflow.org/api_docs/python/tf/estimator/RunConfig

    【讨论】:

    • 为了澄清,您必须传入一个自定义的RunConfig,并将此属性设置为 Estimator 构造函数tf.estimator.Estimator(...config=tf.estimator.RunConfig(log_step_count_steps=500))。
    【解决方案2】:

    【讨论】:

    • 我尝试了你的建议。它将新日志添加到现有日志挂钩。不幸的是,它不允许我替换或调整在 estimator.py 中无条件添加的默认日志挂钩的频率。
    • 嗯,日志记录在 C++ 中,所以它需要从源代码重建。所以只需禁用日志记录(设置为“警告”或提高严重性)并以另一种方式记录
    • 感谢您的帮助。但是,它并没有实现我的目标。
    • 查看从源代码构建时使用 c++ 修复更新,我没有尝试过这个
    • 我认为这与 c++ 实现无关。从原始问题中可以看出,在 estimator.py 中添加了 LoggingTensorHook。我的抱怨是 Estimators 的用户无法控制日志记录的存在或频率。
    猜你喜欢
    • 2013-01-08
    • 1970-01-01
    • 2021-05-27
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    • 2015-07-29
    • 1970-01-01
    相关资源
    最近更新 更多