Python 错误:tensorflow:无法';不匹配检查点的文件
我正在训练一个tensorflow模型,在每个历元之后,我保存模型状态并pickle一些数组。到目前为止,我的模型已完成2个时代,保存状态的文件夹包含以下文件:Python 错误:tensorflow:无法';不匹配检查点的文件,python,tensorflow,Python,Tensorflow,我正在训练一个tensorflow模型,在每个历元之后,我保存模型状态并pickle一些数组。到目前为止,我的模型已完成2个时代,保存状态的文件夹包含以下文件: checkpoint model_e_knihy_preprocessed.txt_e0.ckpt-1134759.data-00000-of-00001 model_e_knihy_preprocessed.txt_e0.ckpt-1134759.index model_e_knihy_preprocessed.txt_e0.ckpt
checkpoint
model_e_knihy_preprocessed.txt_e0.ckpt-1134759.data-00000-of-00001
model_e_knihy_preprocessed.txt_e0.ckpt-1134759.index
model_e_knihy_preprocessed.txt_e0.ckpt-1134759.meta
model_e_knihy_preprocessed.txt_e1.ckpt-2269536.data-00000-of-00001
model_e_knihy_preprocessed.txt_e1.ckpt-2269536.index
model_e_knihy_preprocessed.txt_e1.ckpt-2269536.meta
topgrads_e_knihy_preprocessed.txt_[it0].pkl
topgrads_e_knihy_preprocessed.txt_[it1].pkl
toppositions_e_knihy_preprocessed.txt_[it0].pkl
toppositions_e_knihy_preprocessed.txt_[it1].pkl
vocab.txt
我没有移动文件夹,也没有对文件结构进行任何外部修改<代码>检查点文件包含以下内容:
model_checkpoint_path: "model_e_knihy_preprocessed.txt_e1.ckpt-2269536"
all_model_checkpoint_paths: "model_e_knihy_preprocessed.txt_e0.ckpt-1134759"
all_model_checkpoint_paths: "model_e_knihy_preprocessed.txt_e1.ckpt-2269536"
我用以下方法恢复模型
with tf.Session() as session:
model = Word2Vec(opts, session)
model.saver.restore(session, tf.train.latest_checkpoint(path_to_model))
但是tf.train.latest\u checkpoint(path\u to\u model)
方法中已经存在错误
ERROR:tensorflow:Couldn't match files for checkpoint /mnt/minerva1/nlp/projects/deep_learning/word2vec/trainedmodels/tf_w2vopt_[CS]ebooks_topgradients_iterative/model_e_knihy_preprocessed.txt_e1.ckpt-2269536
所以我偷看了一下这个方法
def latest_checkpoint(checkpoint_dir, latest_filename=None):
ckpt = get_checkpoint_state(checkpoint_dir, latest_filename)
if ckpt and ckpt.model_checkpoint_path:
# Look for either a V2 path or a V1 path, with priority for V2.
v2_path = _prefix_to_checkpoint_path(ckpt.model_checkpoint_path,
saver_pb2.SaverDef.V2)
v1_path = _prefix_to_checkpoint_path(ckpt.model_checkpoint_path,
saver_pb2.SaverDef.V1)
if file_io.get_matching_files(v2_path) or file_io.get_matching_files(
v1_path):
return ckpt.model_checkpoint_path
else:
logging.error("Couldn't match files for checkpoint %s",
ckpt.model_checkpoint_path)
return None
并发现文件io.get_matching_files(v2_path)找不到任何内容(v2_path包含value/mnt/minerva1/nlp/projects/deep_learning/word2vec/trainedmodels/tf_w2vopt_CS)电子书\u topgradients\u iterative/model\u e\u knihy\u preprocessed.txt\u e1.ckpt-2269536.index
,存在于文件夹中!遗憾的是,我无法进一步了解,因为此方法的控制会导致tensorflow包装器。这是一个tensorflow bug
我使用的是Tensorflow版本1.5.0-rc0。因此,答案是不要在文件路径中使用方括号。。Tensorflow无法处理它们。
请参阅。TensorFlow,这个错误太可怕了!顺便说一句,方括号在windows中很好,但在ubuntu上却坏了。