我一直在学习有关Tensorflow 对象检测 API的本教程,并且我已经使用 Google 的 Cloud TPU 成功地训练了我自己的对象检测模型。
然而,问题是在 Tensorboard 上,我看到的每个图只有 2 个数据点(所以它只是绘制一条直线),如下所示:
...而我想看到更多像下面这样的“粒度”图,这些图更详细:
我一直在关注的教程承认这个问题是由于 TPU 训练需要很少的训练步骤而引起的:
请注意,这些图表仅绘制了 2 个点,因为模型只需很少的步骤即可快速训练(如果您之前使用过 TensorBoard,您可能会习惯在此处看到更多曲线)
我尝试save_checkpoints_steps=50
在文件中添加model_tpu_main.py
(见下面的代码片段),当我重新运行训练时,我能够得到更精细的图,每 300 步左右有 1 个数据点。
config = tf.contrib.tpu.RunConfig(
# I added this line below:
save_checkpoints_steps=50,
master=tpu_grpc_url,
evaluation_master=tpu_grpc_url,
model_dir=FLAGS.model_dir,
tpu_config=tf.contrib.tpu.TPUConfig(
iterations_per_loop=FLAGS.iterations_per_loop,
num_shards=FLAGS.num_shards))
然而,我的训练工作实际上是每 100 步保存一个检查点,而不是每 300 步。查看日志,我的评估工作每 300 步运行一次。有没有办法让我的评估工作每 100 步运行一次(只要有新的检查点),这样我就可以在 Tensorboard 上获得更精细的图?