TensorBoard嵌入示例?
tensorboard
tensorflow
4
0

我正在寻找张量板嵌入示例,例如带有虹膜数据的嵌入投影仪http://projector.tensorflow.org/

但是不幸的是我找不到一个。在https://www.tensorflow.org/how_tos/embedding_viz/中仅提供有关如何操作的一点信息

有人知道此功能的基本教程吗?

基本:

1)设置一个2D张量变量来保存您的嵌入。

embedding_var = tf.Variable(....)

2)定期将嵌入内容保存在LOG_DIR中。

3)将元数据与您的嵌入关联。

参考资料:
Stack Overflow
收藏
评论
共 4 个回答
高赞 时间 活跃

听起来您想在TensorBoard上运行t-SNE来获得“可视化”部分。正如您所描述的,Tensorflow的API仅在how-to文档中提供了最基本的命令。

我已经将带有MNIST数据集的工作解决方案上传到了我的GitHub存储库中

是的,它分为三个一般步骤:

  1. 为每个维度创建元数据。
  2. 将图像与每个尺寸相关联。
  3. 将数据加载到TensorFlow中,并将嵌入内容保存在LOG_DIR中。

TensorFlow r0.12版本仅包含通用细节。在官方源代码中没有我所知道的完整代码示例。

我发现其中涉及两项任务,但操作方法中未记录。

  1. 从源准备数据
  2. 将数据加载到tf.Variable

虽然TensorFlow是为使用GPU设计的,但在这种情况下,我选择使用CPU生成t-SNE可视化,因为该进程占用的内存比我的MacBookPro GPU所能访问的更多。 TensorFlow包含对MNIST数据集的API访问,因此我使用了它。 MNIST数据以结构化的numpy数组的形式出现。使用tf.stack函数可以将此数据集堆叠到张量列表中,这些张量可以嵌入到可视化文件中。以下代码包含了我如何提取数据并设置TensorFlow嵌入变量的方法。

with tf.device("/cpu:0"):
    embedding = tf.Variable(tf.stack(mnist.test.images[:FLAGS.max_steps], axis=0), trainable=False, name='embedding')

创建元数据文件的过程是对numpy数组进行切片。

def save_metadata(file):
    with open(file, 'w') as f:
        for i in range(FLAGS.max_steps):
            c = np.nonzero(mnist.test.labels[::1])[1:][0][i]
            f.write('{}\n'.format(c))

如何操作中说明了要关联的图像文件。我已经将前10,000个MNIST图像的png文件上传到了GitHub

到目前为止,TensorFlow对我来说工作得很漂亮,它的计算速度非常快,有据可查,并且该API在功能上已经很完善,可以立即完成我的所有工作。我期待在来年使用自定义数据集生成更多可视化效果。这篇文章是从我的博客中编辑的。祝您好运,请让我知道如何进行。 :)

收藏
评论

我在TensorBoard中使用了FastText的预训练词向量

import os
import tensorflow as tf
import numpy as np
import fasttext
from tensorflow.contrib.tensorboard.plugins import projector

# load model
word2vec = fasttext.load_model('wiki.en.bin')

# create a list of vectors
embedding = np.empty((len(word2vec.words), word2vec.dim), dtype=np.float32)
for i, word in enumerate(word2vec.words):
    embedding[i] = word2vec[word]

# setup a TensorFlow session
tf.reset_default_graph()
sess = tf.InteractiveSession()
X = tf.Variable([0.0], name='embedding')
place = tf.placeholder(tf.float32, shape=embedding.shape)
set_x = tf.assign(X, place, validate_shape=False)
sess.run(tf.global_variables_initializer())
sess.run(set_x, feed_dict={place: embedding})

# write labels
with open('log/metadata.tsv', 'w') as f:
    for word in word2vec.words:
        f.write(word + '\n')

# create a TensorFlow summary writer
summary_writer = tf.summary.FileWriter('log', sess.graph)
config = projector.ProjectorConfig()
embedding_conf = config.embeddings.add()
embedding_conf.tensor_name = 'embedding:0'
embedding_conf.metadata_path = os.path.join('log', 'metadata.tsv')
projector.visualize_embeddings(summary_writer, config)

# save the model
saver = tf.train.Saver()
saver.save(sess, os.path.join('log', "model.ckpt"))

然后在您的终端中运行以下命令:

tensorboard --logdir=log
收藏
评论

查看此演讲“动手TensorBoard(TensorFlow开发峰会2017)” https://www.youtube.com/watch?v=eBbEDRsCmv4它演示了TensorBoard嵌入在MNIST数据集上的情况。

演讲的示例代码和幻灯片可以在这里找到https://github.com/mamcgrath/TensorBoard-TF-Dev-Summit-Tutorial

收藏
评论

TensorFlow to GitHub存储库中出现了一个问题: 没有使用tensorboard嵌入选项卡#6322mirror )的真实代码示例

它包含一些有趣的指针。


如果感兴趣的话,一些使用TensorBoard嵌入来显示字符和单词嵌入的代码: https : //github.com/Franck-Dernoncourt/NeuroNER

例:

在此处输入图片说明

在此处输入图片说明

仅供参考: 如何在TensorBoard的“嵌入”标签中选择要查看的检查点?

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号