Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TensorFlow中的预训练神经网络_Tensorflow_Neural Network_Deep Learning - Fatal编程技术网

TensorFlow中的预训练神经网络

TensorFlow中的预训练神经网络,tensorflow,neural-network,deep-learning,Tensorflow,Neural Network,Deep Learning,我在训练一个深度神经网络。直接训练整个网络是很困难的,因此,我更喜欢分层训练。首先,我训练了一个具有单个隐藏层的网络。之后,我使用tf.train.Saver保存模型。下次,我将通过调用以下命令恢复变量: saver.restore(sess, "runs/simple-model.ckpt") 当然,这一次,架构发生了变化,因为我在隐藏层和输出层之间插入了一个新层,并使用了一个新变量。因此,Tensorflow会抛出一个错误:找不到键 我的问题是:如何在Tensorflow中逐层训练神经网络

我在训练一个深度神经网络。直接训练整个网络是很困难的,因此,我更喜欢分层训练。首先,我训练了一个具有单个隐藏层的网络。之后,我使用
tf.train.Saver
保存模型。下次,我将通过调用以下命令恢复变量:

saver.restore(sess, "runs/simple-model.ckpt")
当然,这一次,架构发生了变化,因为我在隐藏层和输出层之间插入了一个新层,并使用了一个新变量。因此,Tensorflow会抛出一个错误:
找不到键

我的问题是:如何在Tensorflow中逐层训练神经网络?我想在对整个网络进行最终微调之前完成这项工作。
非常感谢。

尝试使用共享权重定义整个网络。
与其在所有层上进行培训,不如定义一个只运行您想要的层的函数,并最终保存整个网络。

最后,我找到了一个简单的解决方案。在Python中,可以使用
numpy.save
轻松保存numpy数组。之后,我们可以通过以下方式加载数组:
numpy.load
。因此,培训后,我可以使用
var.eval()
对变量求值,将其转换为numpy数组,然后保存。

saver
构造函数接受要初始化的变量列表。因此,您可以为saver指定现有变量,并手动初始化新变量是的,但Tensorflow似乎声称旧图形中不存在新变量。我觉得Saver总是需要相同的体系结构。通过查看图形(
tf.get\u default\u graph().as\u graph\u def()
),可以仔细检查图形中是否存在此变量。