首先代码如下:

def word_vis(self,file,txtname):#生成的模型存放的地址:word_vismodel'+file为新建的文件夹名   txtname是通过word2vec生成 的词向量txt文档地址
from tqdm import tqdm
import numpy as np
import tensorflow as tf
from tensorflow.contrib.tensorboard.plugins import projector
import os
import codecs words, embeddings = [], [] log_path = './tmp/word_vismodel'+file #生成的模型存放的地址
if not os.path.exists(log_path):
os.mkdir(log_path) with codecs.open(txtname, 'r') as f:
header = f.readline()
vocab_size, vector_size = map(int, header.split())
for line in tqdm(range(vocab_size)):
word_list = f.readline().split(' ')
word = word_list[0]
#此处由于维度出错 Cannot feed value of shape (33, 99) for Tensor 'Placeholder:0', which has shape '(33, 100)'
vector = word_list[1:]#刚开始代码是word_list[1:-1]报上面的错误,修改后没有问题
if word == "":
continue
words.append(word)
embeddings.append(np.array(vector))
assert len(words) == len(embeddings)
print(len(words),vector_size) with tf.Session() as sess:
X = tf.Variable([0.0], name='embedding')
place = tf.placeholder(tf.float32, shape=[len(words), vector_size])
set_x = tf.assign(X, place, validate_shape=False)
sess.run(tf.global_variables_initializer())
sess.run(set_x, feed_dict={place: embeddings})
with codecs.open(log_path + '/metadata.tsv', 'w') as f:
for word in tqdm(words):
f.write(word + '\n') # with summary
summary_writer = tf.summary.FileWriter(log_path, sess.graph)
config = projector.ProjectorConfig()
embedding_conf = config.embeddings.add()
embedding_conf.tensor_name = 'embedding:0'
embedding_conf.metadata_path = os.path.join('metadata.tsv')
projector.visualize_embeddings(summary_writer, config) # save
saver = tf.train.Saver()
saver.save(sess, os.path.join(log_path, "model.ckpt")) 报错2:按照官方文档给出的运行tensorboard文件方式发现无法显示,查阅资料https://blog.csdn.net/whitesilence/article/details/79261592 发现,需要先将运行目录定位到存放要显示图像的文件位置
也就是上面的log_path ,先通过命令行进入该路径,然后输入: tensorboard --logdir ./即可运行当前路径下得到的图像
报错3:具体报错是显示英文:typeerror...具体不记得了,但是左下角出现了文件节点有13个但是生成图像的文件有12个节点,猜测是由于我的词向量文件有一个词是空格的问题,把词向量文件中该空格及相应的向量
还有将第一行的13改成12就没有问题了。
还有一个问题需要注意:我的电脑没有办法通过localhost:6006进入该软件显示界面,是在命令行下输入tensorboard --logdir ./后提示的路径,具体可以参看自己的电脑提示tensorboard --logdir ./
另外,我发现写多个word_vis()每次都是第一个该函数能执行出来结果,剩余的显示不了图像,需要重新执行

最新文章

  1. socket:通常每个套接字地址(协议/网络地址/端口)只允许使用一次
  2. iOS开发——高级篇——地理定位 CoreLocation
  3. PL/SQL之--包
  4. 怎样写 OpenStack Neutron 的 Extension (四)
  5. http技术交流提纲
  6. Visual Studio 2012 使用免费的Team Foundation Service
  7. 如何获取android app的Activity
  8. C++学习笔记(十六):友元
  9. QT插件开发方式(没看懂)
  10. (简单) FZU 2150 Fire Game ,Floyd。
  11. ajax提交File文件
  12. HttpWebRequest.AddRange 支持long类型
  13. Keepalived 进程无法关闭
  14. MySQL 捕获有问题的SQL-慢查日志 实例
  15. 全网最详细的Sublime Text 3的激活(图文详解)
  16. WebKit的Platform接口部分
  17. Everything 使用技巧 MD
  18. Oracle Time Model Statistics(时间模型统计)
  19. [Python]网络爬虫(五):urllib2的使用细节与抓站技巧(转)
  20. MFC常见错误提示:opened in another editor

热门文章

  1. python 验证码识别示例(二) 复杂验证码识别
  2. python和C++联合调试
  3. ASP.NET CORE下运行CMD命令
  4. .NET CORE控制器里的方法取传参的坑
  5. 物联网架构成长之路(29)-Jenkins环境搭建
  6. 线程封装组件(BackgroundWorker)和线程(Thread)
  7. 【将门创投】AI 往期技术分享
  8. oracle去掉字符串中所有指定字符
  9. 【OCR技术系列之七】端到端不定长文字识别CRNN算法详解
  10. [微信小程序] 通过快速启动demo分析小程序入门关键点