如何 select 在 TensorBoard 的嵌入选项卡中查看哪个检查点?

How can I select which checkpoint to view in TensorBoard's embeddings tab?

小问题:如何select在 TensorBoard 的嵌入选项卡中查看哪个检查点?


问题的较长版本:

我想用 TensorBoard 可视化词嵌入。为此,在阅读 official tutorial (mirror) 后,我添加了以下代码:

embedding_writer = tf.summary.FileWriter(model_folder)     
embeddings_projector_config = projector.ProjectorConfig()
embedding = embeddings_projector_config.embeddings.add()
embedding.tensor_name = model.W.name # W corresponds to the embeddings' weights.
projector.visualize_embeddings(embedding_writer, embeddings_projector_config)

# Initialize the model
sess.run(tf.global_variables_initializer())

[...]

# Then, for each training epoch:
model_saver.save(sess, os.path.join(model_folder, 'model_{0:05d}.ckpt'.format(epoch_number)))

查看 TensorFlow 保存日志的文件夹,我确实有每个 epoch 的检查点:

但是,在 TensorBoard 的嵌入选项卡中,我似乎只能查看最新的检查点:

我有时想查看以前 epoch 的嵌入。如何 select 在 TensorBoard 的嵌入选项卡中查看哪个检查点?

我是嵌入可视化工具的工程师之一。感谢您的反馈。我们计划在 UI 中添加一个下拉菜单,允许您选择不同的检查点。

同时,有一个解决方法。您可以编辑位于 TensorBoard 保存日志的文件夹中的 projector_config.pbtxt。我假设 projector_config.pbtxt 的内容是:

embeddings {
...
}

在文件末尾添加以下行:

model_checkpoint_path: "path_to_log_dir/model_0000N.ckpt"

指向您想要可视化的确切检查点,然后删除(如果存在)行 model_checkpoint_dir: "..."。然后刷新页面(并可能重新运行 TensorBoard)。


例如,如果您使用 tensorboard --logdir=output 启动了 TensorBoard,并且模型检查点绝对路径是 C:\Users\a\output\en_2017-03-08_17-42-09-310106\model\model_00004.ckpt,那么您应该附加到 projector_config.pbtxt:

model_checkpoint_path: "output\en_2017-03-08_17-42-09-310106\model\model_00004.ckpt"

projector_config.pbtxt 示例:

embeddings {
  tensor_name: "token_embedding/W:0"
}
model_checkpoint_path: "output\en_2017-03-08_17-42-09-310106\model\model_00004.ckpt"

如果当您点击 TensorBoard 中的嵌入选项卡时没有任何显示,则表示您输入的 model_checkpoint_path 不正确。

希望对您有所帮助!