关于使用检查点文件恢复网络,我有两个问题。我使用this code恢复我的网络。我只需要我的原始网络的一部分。实际上,我的原始网络由5个卷积(非常小)网络组成,所有这些都连接到最后一个完全连接的大层。我只想要我的5个迷你口罩。我为网络中的每一个变量和每一层定义名称。(我注意到,当我使用日志数据运行tensorboard时,一切正常。这意味着,我有我所有变量和张量的适当名称)
1-我的第一个问题是,当我想在恢复的网络中按名称找到这些变量中的任何一个时,我面临着“没有这个名称的张量”错误。我还用inspect_checkpoint.py测试了我的检查点文件,在输出中它只返回一个变量:
Variable (DT_INT32) []在另一种情况下,我用下面的代码再次测试:
from tensorflow.python import pywrap_tensorflow
checkpoint_path = os.path.join('./', 'model.ckpt-100')
reader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path)
var_to_shape_map = reader.get_variable_to_shape_map()
for key in var_to_shape_map:
print("tensor_name: ", key)
print(reader.get_tensor(key))然后返回:
tensor_name: Variable
101我找不到这个问题的原因。在座的各位有没有遇到过这个问题?
2-基于上面我用来恢复我的网络的网站,我有点困惑。实际上,我想恢复我所有的5个迷你convnet (所有这些迷你网络在它们的最后一层都有一个完全连接的)。因此,我真的不知道从最后一个完全连接层恢复每个迷你convnet及其所有权重的正确方法是什么。
发布于 2017-07-10 17:47:59
1-从外观上看,你似乎还没有命名你的变量。它不保存变量名称。如果是这样的话,如果你有不同的类型,它们可能会在训练中工作,但当你试图构建一个具有相同键名的字典时,写入内存的操作就会变得混乱并被覆盖。
2-要完全恢复网络,您必须使用
saver = tf.train.Saver()
saver.save(session_to_save, 'namefile')
...
saver.restore(session_to_restore, 'namefile')https://stackoverflow.com/questions/45007137
复制相似问题