我已经运行了分布式mnist示例:https://github.com/tensorflow/tensorflow/blob/r0.12/tensorflow/tools/dist_test/python/mnist_replica.py
虽然我已经设置了
saver = tf.train.Saver(max_to_keep=0)
在之前的版本中,例如r11,我能够运行每个检查点模型并评估模型的精度。这给了我一个关于精度随全局步数(或迭代次数)变化的进展图。
在r12之前,tensorflow检查点模型保存在两个文件中,model.ckpt-1234
和model-ckpt-1234.meta
。可以通过传递model.ckpt-1234
文件名来恢复模型,如下所示saver.restore(sess,'model.ckpt-1234')
。
但是,我注意到在r12中,现在有三个输出文件model.ckpt-1234.data-00000-of-000001
、model.ckpt-1234.index
和model.ckpt-1234.meta
。
我看到还原文档中说应该给出类似/train/path/model.ckpt
的路径来恢复,而不是文件名。有没有办法一次加载一个检查点文件进行评估?我已经尝试了传递model.ckpt-1234.data-00000-of-000001
、model.ckpt-1234.index
和model.ckpt-1234.meta
等文件,但会出现以下错误:
W tensorflow/core/util/tensor_slice_reader.cc:95] 无法打开 logdir/2016-12-08-13-54/model.ckpt-0.data-00000-of-00001:数据丢失:不是sstable(错误的魔数):也许您的文件处于不同的文件格式中,需要使用不同的恢复运算符?
NotFoundError(请参见上面的回溯):检查点文件中未找到张量名称“hid_b”logdir/2016-12-08-13-54/model.ckpt-0.index [[Node:save / RestoreV2_1 = RestoreV2 [dtypes =[DT_FLOAT],_device =“/ job:localhost / replica:0 / task:0 / cpu:0”](_recv_save / Const_0,save / RestoreV2_1 / tensor_names,save / RestoreV2_1 / shape_and_slices)]]
W tensorflow/core/util/tensor_slice_reader.cc:95] 无法打开 logdir/2016-12-08-13-54/model.ckpt-0.meta:数据丢失:不是sstable(错误的魔数):也许您的文件处于不同的文件格式中,需要使用不同的恢复运算符?
我正在运行安装在 pip 上的 TensorFlow r12 的 OSX Sierra。
任何帮助指导将非常有用。谢谢。
with tf.Session() as sess: saver = tf.train.import_meta_graph('/tmp/model.ckpt.meta') saver.restore(sess, "/tmp/model.ckpt")
- Alberto Perez