简短问题:如何在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保存日志的文件夹,每个时期都有一个检查点:
但是,在TensorBoard的嵌入标签中,我似乎只能查看最新的检查点:
我有时想查看以前时代的嵌入。如何在TensorBoard的嵌入选项卡中选择要查看的检查点?
答案 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
不正确。
希望这有帮助!