我在tensorflow上使用tflearn包装器来构建模型,并且希望将元数据(标签)添加到生成的嵌入可视化中.有没有办法在运行它之后将metadata.tsv文件链接到保存的检查点?
我在检查点摘要的logdir中创建了一个projector_config.pbtxt文件,metadata.tsv位于同一个文件夹中.配置如下所示:
embeddings {
tensor_name: "Embedding/W"
metadata_path: "C:/tmp/tflearn_logs/shallow_lstm/"
}
并使用docs-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)
下面是当前嵌入可视化的快照.请注意空元数据.有没有办法直接将所需的元文件附加到此嵌入?
最佳答案 我遇到了同样的问题,现在已经解决了:)
基本上,您需要做的就是遵循3个步骤:
>保存模型检查点,假设ckeckpoint的目录是ckp_dir;
>在ckp_dir中放置projector_config.pbtxt和metadata.tsv;
>运行tensorboard –logdir = ckp_dir并单击“嵌入”选项卡
projector_config.pbtxt的内容是:
embeddings {
tensor_name: "embedding_name"
metadata_path: "metatdata.tsv"
}
这是将嵌入链接到metadata.tsv的关键.在tf.Session()中,我们经常得到嵌入的值,如sess.run(’embedding_name:0′).但是在projector_config.pbtxt中,我们只输入tensor_name:“embedding_name”.
通常,我们可以在projector_config.pbtxt中指定检查点路径和metadata_path,以便我们可以将checkpoint,projector_config.pbtxt和metadata.tsv放在不同的目录中.但我认为这太复杂了.我刚才解决了这个问题.