2017-09-02 75 views
0

我正在使用Estimator来训练我的网络。我想用Tensorboard进行监控。博客为估算要求的东西,如:在Tensorflow Estimator框架中没有Tensorboard日志记录

"The training will output information like the global step, loss, 
and accuracy over time on the terminal output. Besides this, the 
Experiment and Estimator framework will log certain statistics to 
be visualized by TensorBoard." 

https://medium.com/onfido-tech/higher-level-apis-in-tensorflow-67bfb602e6c0

我的过程中确实创造和事件的文件,但什么也没有。

These tags are in checkpoints/1504359209.469093: 
audio - 
histograms - 
images - 
scalars - 
tensor - 

什么控制哪些标量等估计器写入,以及它多久写入它们?

回答

1

首先,文档在这一点上不是很清楚。 为了避免写一篇教程,这里有几点你可能会发现有帮助,虽然我应该说我不太清楚你的代码是如何设置的。

  • 您不想创建FileWriter。相反,您只需将tf.summary.scalar和tf.name_scope注释添加到您的model_fn。
  • 你不想从sess.run回传任何东西。这是我的第一个猜测,我可以确认你可以保留你的Estimator并且不需要重组。
  • 您应该查看创建您的估算器的线(estimator.Estimator(model_fn = ...))。在这一行你指定了你的model_dir,这是你指向tensorboard的logdir参数的地方。 Estimators自动登录到model_dir,它们不需要FileWriter。您可能已经知道这一点,因为您可以看到事件输出,但我提到它以防它发现我们正在做的事情之间存在某些不一致。
  • 你也应该看看你传递给你的估算器的RunConfig。我包含关键save_summary_steps,并且我认为这控制了写入发生的频率。
0

谢谢。这非常有帮助。

我有,已经得到它使用默认的标量工作,但你的建议将允许我添加新的。

在我的情况下,问题在于数据输入。我复制了使用DataSet的现有代码。这里是我的代码

 # Build dataset iterator 
     dataset = tf.contrib.data.Dataset.from_tensor_slices(
     # dataset = tf.contrib.data.Dataset.from_tensors(
      (fingerprints_placeholder, labels_placeholder)) 
     #dataset = dataset.repeat(None) # Infinite iterations 
     #dataset = dataset.shuffle(buffer_size=10000) 
     dataset = dataset.batch(batch_size) 
     iterator = dataset.make_initializable_iterator() 

请注意注释掉的行。出于某种原因,它们会导致代码永远无法运行。删除它们可以让所有的东西像广告一样工作。

相关问题