我正在训练深度神经网络。直接培训整个网络很困难,因此,我更喜欢逐层培训。首先,我训练一个具有单个隐藏层的网络。之后,我使用tf.train.Saver
保存模型。下次,我通过调用:
saver.restore(sess, "runs/simple-model.ckpt")
当然,这次架构发生了变化,因为我在隐藏层和输出层之间插入了一个新层,并使用了一个新变量。因此,Tensorflow会抛出错误:Key not found
我的问题是:如何在Tensorflow中逐层训练神经网络?我希望在最终微调整个网络之前做到这一点。 非常感谢。
答案 0 :(得分:2)
最后,我找到了一个简单的解决方案。在Python中,使用numpy.save
可以轻松保存numpy数组。之后,我们可以通过以下方式加载数组:numpy.load
。因此,在训练之后,我可以使用var.eval()
来评估变量,将其转换为numpy数组,然后保存。
答案 1 :(得分:1)
尝试使用共享权重定义整个网络。 而不是对所有图层进行训练,而是定义一个仅运行所需图层的函数,最后保存整个网络。