我正在训练一个深度神经网络。直接训练整个网络很困难,因此我更喜欢逐层训练。首先,我会训练一个只有一个隐藏层的网络。之后,我使用tf.train.Saver
保存模型。下次训练时,我通过调用以下代码来恢复变量:
saver.restore(sess, "runs/simple-model.ckpt")
当然,这一次,架构已经改变了,因为我在隐藏层和输出层之间插入了一个新的层,并使用了一个新的变量。因此,Tensorflow会抛出一个错误:Key not found
我的问题是:如何在Tensorflow中逐层训练神经网络?我想在进行最后的全网调优之前完成这个过程。 非常感谢。
saver
构造函数接受变量列表进行初始化。因此,您可以为saver
指定现有变量,并手动初始化新变量。 - Yaroslav Bulatovtf.get_default_graph().as_graph_def()
)来确认此变量是否存在于图形中。 - Yaroslav Bulatov