如何在TensorBoard的嵌入选项卡中选择要查看的检查点?

时间:2017-03-08 18:50:03

标签: python tensorflow tensorboard

简短问题:如何在TensorBoard的嵌入标签中选择要查看的检查点?

问题的更长版本:

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

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保存日志的文件夹,每个时期都有一个检查点:

enter image description here

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

enter image description here

我有时想查看以前时代的嵌入。如何在TensorBoard的嵌入选项卡中选择要查看的检查点?

1 个答案:

答案 0 :(得分:5)

我是一名从事嵌入式可视化工作的工程师。感谢您的反馈。我们计划在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不正确。

希望这有帮助!