将Tensorboard嵌入元数据链接到检查点

pon*_*gen 5 metadata embedding tensorflow tensorboard tflearn

我在tensorflow上使用tflearn包装器来构建模型,并想将元数据(标签)添加到结果嵌入可视化中。运行后,有没有办法将metadata.tsv文件链接到保存的检查点?

我已经在检查点摘要的日志目录中创建了projection_config.pbtxt文件,并且metas.tsv位于同一文件夹中。配置看起来像这样:

embeddings {
  tensor_name: "Embedding/W"
  metadata_path: "C:/tmp/tflearn_logs/shallow_lstm/"
}
Run Code Online (Sandbox Code Playgroud)

并使用文档中的代码创建-https: //www.tensorflow.org/how_tos/embedding_viz/

我已经注释掉了tf.Session部分,希望创建元数据链接而无需直接在Session对象中这样做,但是我不确定是否可行。

from tensorflow.contrib.tensorboard.plugins import projector
#with tf.Session() as sess:
config = projector.ProjectorConfig()
# One can add multiple embeddings.
embedding = config.embeddings.add()
embedding.tensor_name = 'Embedding/W'
# Link this tensor to its metadata file (e.g. labels).
embedding.metadata_path = 'C:/tmp/tflearn_logs/shallow_lstm/'
# Saves a config file that TensorBoard will read during startup.
projector.visualize_embeddings(tf.summary.FileWriter('/tmp/tflearn_logs/shallow_lstm/'), config)
Run Code Online (Sandbox Code Playgroud)

以下是当前嵌入可视化的快照。注意空的元数据。有没有一种方法可以将所需的图元文件直接附加到此嵌入?

嵌入可视化

aev*_*il3 3

我遇到了同样的问题,现在已经解决了:)

本质上,您需要做的就是执行以下 3 个步骤:

  1. 保存模型检查点,假设ceckpoint的目录是ckp_dir
  2. projector_config.pbtxtmetadata.tsv放在ckp_dir;
  3. 运行tensorboard --logdir=ckp_dir并单击“嵌入”选项卡

projector_config.pbtxt的内容是:

    embeddings {
      tensor_name: "embedding_name"
      metadata_path: "metatdata.tsv"
    }
Run Code Online (Sandbox Code Playgroud)

这是将嵌入链接到metadata.tsv 的关键。在 tf.Session() 中,我们经常得到嵌入的值,例如sess.run('embedding_name:0')。但在projector_config.pbtxt中,我们只需输入tensor_name: "embedding_name"

一般来说,我们可以在projector_config.pbtxt中指定checkpoint路径和metadata_path ,这样我们就可以将checkpointprojector_config.pbtxtmetadata.tsv放在不同的目录中。但我认为这太复杂了。我刚刚按照上面的方法解决了。

此处显示的结果