我目前正在尝试为我的公司培训word2vec模型。 为此,我使用了https://github.com/tensorflow/models上的代码,特别是https://github.com/tensorflow/models/blob/master/tutorials/embedding/word2vec.py。Tensorflow模型加载不正确
我下载了德文维基百科转储并从中提取了文本信息。任务是用这些数据训练一个模型。
我使用的是具有Ubuntu 16.04和访问特斯拉M60的虚拟机。在周末,我训练了模型并将检查点保存在一个单独的文件夹中。在周末结束时,模型能够回答我给他的评估问题(类似于“questions-word.txt”示例的德语问题)。训练后,我想加载模型并再次运行评估任务。 为此,我在下面的行(除路径中的变化)改变了代码:我添加
with tf.Graph().as_default(), tf.Session() as session:
saver = tf.train.import_meta_graph(opts.save_path + "/model.ckpt-288720426.meta")
saver.restore(session, tf.train.latest_checkpoint('./results'))
print("Model restored.")
with tf.device("/cpu:0"):
model = Word2Vec(opts, session)
model.read_analogies() # Read analogy questions
for _ in xrange(opts.epochs_to_train):
#model.train() # Process one epoch
model.eval() # Eval analogies.
我增加了两行加载模型(保护程序= ...)和注释训练线。查看元和最新的检查点文件和tensorboard显示一个训练有素的模型,但是当我运行代码时,评估结果在0.1%正确的答案,这在我看来像模型重新启动未经训练的模型。我预计结果再次是36%。
有人可以告诉我我在代码中犯的错误,或者甚至在我的想法?
谢谢你的帮助。使用链接中发布的行替换建议的行实际上解决了问题! –