我正在尝试使用 .ckpt
恢复模型文件,这是我通过运行 word2vec_optimized.py
得到的在tensorflow/models/embedding
.我不确定如何恢复变量以便我可以加载模型并使用它,因为所有 tf 变量都封装并初始化在 tensorflow/models/embedding/word2vec_optimized.py
中的类中。 .任何帮助,将不胜感激。
此外,如果我“恢复”.ckpt
创建,我现在有一个Wor2Vec
吗?实例或者当我使用 .ckpt
恢复模型时我实际得到了什么?
最佳答案
当您在保护程序上调用保存功能时,您将它传递给您用于训练模型的 tf.Session。这包含对包含所有变量的图形的引用。不要混淆 python 变量和 tensorflow 变量。即使您在 python 中不再有指向您创建的 tensorflow 变量的变量,如果它是计算图的一部分,它仍然存在。创建模型后,尝试运行以下代码。
for v in tf.all_variables():
print(v.name)
这将打印出您创建的每个变量的名称。默认情况下,保存程序将保存所有这些。只要变量在您恢复它们时具有相同的名称,那么它们是在哪里创建的并不重要。只需确保在将所有变量添加到模型后进行恢复即可。当您为变量提供初始化程序时,初始化仅在您调用 sess.run(tf.initialize_all_variables())
时运行。如果您只是恢复值,则不需要调用它。我经常使用下面的代码。
sess = tf.Session()
saver = tf.train.Saver()
if 'restore' in sys.argv:
saver.restore(sess, '/media/chase/98d61322-9ea7-473e-b835-8739c77d1e1e/model.chk')
else:
sess.run(tf.initialize_all_variables())
当我使用在其中创建变量的 thensorflow RNN 类时,这段代码工作正常。
关于python - 如何恢复 tensorflow 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38428294/