【发布时间】:2017-05-23 04:35:03
【问题描述】:
我正在训练一个深度神经网络。直接训练整个网络很困难,因此,我更喜欢逐层训练。首先,我训练一个具有单个隐藏层的网络。之后,我使用tf.train.Saver 保存模型。下一次,我通过调用来恢复变量:
saver.restore(sess, "runs/simple-model.ckpt")
当然,这次架构发生了变化,因为我在隐藏层和输出层之间插入了一个新层,并且使用了一个新变量。为此,Tensorflow 抛出错误:Key not found
我的问题是:如何在 Tensorflow 中逐层训练神经网络?我想在对整个网络进行最终微调之前完成它。 非常感谢。
【问题讨论】:
-
saver构造函数接受要初始化的变量列表。所以你可以为 saver 指定现有变量,并手动初始化新变量 -
是的,但 Tensorflow 似乎声称旧图中不存在新变量。我觉得 Saver 总是需要相同的架构。
-
您可以通过查看图表 (
tf.get_default_graph().as_graph_def()) 来仔细检查该变量是否存在于图表中。
标签: tensorflow neural-network deep-learning