我正在使用 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)
根据这个答案,它可能来自没有元数据文件,但我正在加载元数据文件。
PS:我使用这个论点clear_devices=True
是因为在 google-cloud-ml 上启动生成的设备规范非常复杂,我不需要获得相同的调度。