如何在张量流中恢复会话? [复制]

Posted

技术标签:

【中文标题】如何在张量流中恢复会话? [复制]【英文标题】:How to restore session in tensorflow? [duplicate] 【发布时间】:2017-04-23 14:07:03 【问题描述】:

我想在不再次训练网络的情况下使用我的神经网络。 我读到了

save_path = saver.save(sess, "model.ckpt")
print("Model saved in file: %s" % save_path)

现在文件夹中有 3 个文件:checkpointmodel.ckptmodel.ckpt.meta

我想在 python 的另一个类中恢复数据,获取我的神经网络的权重并进行单个预测。

我该怎么做?

【问题讨论】:

【参考方案1】:

要保存模型,您可以这样做:

model_checkpoint = 'model.chkpt'

# Create the model
...
...

with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())

    # Create a saver so we can save and load the model as we train it
    tf_saver = tf.train.Saver(tf.all_variables())

    # (Optionally) do some training of the model
    ...
    ...

    tf_saver.save(sess, model_checkpoint)

我假设你已经这样做了,因为你已经得到了三个文件。 当你想在另一个类中加载模型时,你可以这样做:

# The same file as we saved earlier
model_checkpoint = 'model.chkpt'

# Create the SAME model as before
...
...

with tf.Session() as sess:
    # Restore the model
    tf_saver = tf.train.Saver()
    tf_saver.restore(sess, model_checkpoint)

    # Now your model is loaded with the same values as when you saved,
    #   and you can do prediction or continue training

【讨论】:

谢谢。我收到错误消息:ValueError:没有要保存的变量 您是否在尝试恢复模型或尝试保存模型时收到错误消息? 当我试图恢复它时.. 您是否看过这个:link 您需要在保存和恢复之前以完全相同的方式设置模型。您确定要恢复 same 模型吗? 当您调用restore() 时,它会恢复模型中的所有变量/权重。因此,首先您将构建模型(/图表),然后运行训练以更改图表中的权重,然后保存权重。当您运行restore() 时,它会恢复您保存的权重,但不会恢复模型/图形。因此,在恢复之前,您需要设置与保存权重时相同的模型,以便加载的权重适合模型。恢复权重后,您可以运行单个预测,而无需先训练权重。

以上是关于如何在张量流中恢复会话? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在张量流中对张量进行子集化?

在张量流中,如何迭代存储在张量中的输入序列?

如何在张量流中张量的某些索引处插入某些值?

如何在张量流中合并并非所有摘要?

如何在张量流中使用索引数组?

如何在张量流中随机旋转不同角度的图像