Tensorflow失败,"无法从Feed中获取元素作为字节。"尝试恢复检查点时

时间:2016-12-28 20:12:47

标签: python tensorflow google-cloud-ml

我正在使用Tensorflow r0.12。

我在本地使用google-cloud-ml运行2个不同的培训工作。在第一份工作中,我找到了我的变量的良好初始值。我将它们存储在V2检查点。

当我尝试恢复变量以便在第二个作业中使用它们时:

import tensorflow as tf

sess = tf.Session()
new_saver = tf.train.import_meta_graph('../variables_pred/model.ckpt-10151.meta', clear_devices=True)
new_saver.restore(sess, tf.train.latest_checkpoint('../variables_pred/'))
all_vars = tf.trainable_variables()
for v in all_vars:
    print(v.name)

我收到以下错误消息:

tensorflow.python.framework.errors_impl.InternalError: Unable to get element from the feed as bytes.

在第一个作业中使用这些行创建检查点:

saver = tf.train.Saver()
saver.export_meta_graph(filename=os.path.join(output_dir, 'export.meta'))
saver.save(sess, os.path.join(output_dir, 'export'), write_meta_graph=False)

根据this answer,它可能来自缺少元数据文件,但我正在加载元数据文件。

PS:我使用参数clear_devices=True,因为google-cloud-ml上的启动生成的设备规格非常错综复杂,我不一定需要获得同样的调度。

3 个答案:

答案 0 :(得分:12)

错误消息是由于缺少名为" checkpoint"的文件。无意中。

在相应的文件夹中重新引入此文件后,似乎加载了检查点。

很抱歉忽略了这个关键点。

答案 1 :(得分:1)

我认为问题可能在于您保存模型时设置了write_meta_graph = False。因此,我认为您实际上并未保存图表,因此当您尝试恢复时,无法恢复图表。尝试设置write_meta_graph = True

答案 2 :(得分:-1)

错误消息也是由于无意中名为“checkpoint”的文件中的错误。

例如,包含模型的文件夹已被移动,但“checkpoint”中的“model_checkpoint_path:”值仍为旧路径。