我在df中有一组文档 . 我正在使用 gensim Doc2Vec 将这些文档转换为向量:

def read_corpus(documents):
    for i, plot in enumerate(documents):
        yield gensim.models.doc2vec.TaggedDocument(gensim.utils.simple_preprocess(plot, max_len=30), [i])

train_corpus = list(read_corpus(df.note))

model = gensim.models.doc2vec.Doc2Vec(size=50, min_count=2, iter=55)
model.build_vocab(train_corpus)
model.train(train_corpus, total_examples=model.corpus_count, epochs=model.iter)

然后我保存模型并将.w2v文件转换为tsv文件 . 最后,我覆盖元数据tsv文件,使其有意义:

model.save_word2vec_format('doc_tensor.w2v', doctag_vec=True, word_vec=False)

%run word2vec2tensor.py -i doc_tensor.w2v -o notes 

with open('notes_metadata.tsv','w') as w:
    w.write('created_by\tnote_type\n')
    for i,j in zip(df.created_by, df.note_type):
        w.write("%s\t%s\n" % (i,j))

此时,我有两个tsv文件:一个包含向量,另一个包含有关向量的元数据 . 我按照本教程了解了这一点:http://nbviewer.jupyter.org/github/RaRe-Technologies/gensim/blob/8f7c9ff4c546f84d42c220dcf28543500747c171/docs/notebooks/Tensorboard_visualizations.ipynb#Training-the-Doc2Vec-Model .

现在我想将这个模型和tsv文件嵌入到本地Tensorboard中 . 我试过这个:

# load model
embedding = model.docvecs.vectors_docs

# 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})

# 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)

这段代码运行没有错误,但当我输入 tensorboard --logdir=log 并转到localhost位置时,它看起来像这样:

enter image description here

我的文件夹结构如下所示:

project
   - jupyter_notebook_from_which_I_run_my_code.ipynb
   - log
        - events.out.tfevents.1519305293.COMPUTERNAME
        - notes_metadata.tsv
        - notes_tensor.tsv
        - projector_config.pbtxt

如果我单击TensorBoard投影机中的“选择文件”并选择我的notes_tensor.tsv文件,它会显示“图形可视化失败:图形为空 . 确保在定义图形后将图形传递给tf.summary.FileWriter .

如何在投影机中显示tsv文件以获取tSNE和PCA可视化,例如我之前链接的教程?

Update: 我尝试添加这两行:

saver = tf.train.Saver([X])
saver.save(sess, os.path.join('log', 'model2.ckpt'), 1)

这将这些文件添加到 log

checkpoint
model2.ckpt-1.data-00000-of-00001
model2.ckpt-1.index
model2.ckpt-1.meta

它还给了TensorBoard Projector 标签!

enter image description here

但是,获取metadata.tsv时出错 . 这是因为它不存在 . 它也在/ log / log而不是/ log中查找 . 当我解除该错误时,单击“加载”,然后选择notes_metadata.tsv,没有任何反应 .