TensorFlow:如何将一个模型的可训练变量恢复为另一个模型?

时间:2016-11-28 21:34:08

标签: python neural-network tensorflow deep-learning

我训练了一个自动编码器并使用Saver保存了会话。现在我想训练一个单独的模型,它将使用一堆训练过的变量来编码输入并将其传递给MLP。问题是,即使使用Saver的导出/导入功能,我也无法将自动编码器模型加载到我的新模型中。

这甚至可能吗? 我一直在 '无法打开encoder.ckpt:数据丢失:不是sstable(错误的幻数)也许你的文件格式不同而你需要使用不同的恢复操作符?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

这应该是一个注释,但正如@Alexandre Passos所提到的,如果您之前已经定义了所有变量/操作,saver.restore(encoder.ckpt)应该可以工作。如果还没有,则需要将存储的图形加载为

saver = tf.train.import_meta_graph(encoder.ckpt.meta)
saver.restore(encoder.ckpt)

然后,如果你只想从该模型中获取一些变量,你可以通过

来实现
graph = tf.get_default()
restored_var = graph.get_tensor_by_name(restored_var_name)

您还可能需要检查检查点文件,以确保您具有encode.ckpt文件的写入路径。