解决tensorflow测试模型时NotFoundError错误的问题

yipeiwu_com7年前Python基础

错误代码如下:

NotFoundError (see above for traceback): Unsuccessful TensorSliceReader constructor: 

Failed to find any matching files for xxx
……

经查资料分析,错误原因可能出在加载模型时的路径问题。我采用的加载模型方法:

with tf.Session() as sess:
  print("Reading checkpoints...")
  ckpt = tf.train.get_checkpoint_state(logs_train_dir)
  if ckpt and ckpt.model_checkpoint_path:
   global_step = ckpt.model_checkpoint_path.split('/')                              [-1].split('-')[-1]
   saver.restore(sess, ckpt.model_checkpoint_path)
   print('Loading success, global_step is %s' % global_step)
  else:
   print('No checkpoint file found')

在保存模型时,采用的方法为

saver = tf.train.Saver()
……
……
……
if step % 1000 == 0 or (step + 1) == MAX_STEP:
 checkpoint_path = os.path.join(logs_train_dir, './model.ckpt')
 saver.save(sess, checkpoint_path, global_step=step)

注意代码块中的./model.ckpt,这是关键,原来为model.ckpt就会报错。如果在加载模型时采用直接加载模型文件的方法,则:

改之前代码:

saver.restore(sess,'model.ckpt')

改之后的代码:

saver.restore(sess,'./model.ckpt')

我的改之后是没有什么问题了,如果这种方法不能解决你的问题,再查资料解决吧

以上这篇解决tensorflow测试模型时NotFoundError错误的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python pandas 对series和dataframe的重置索引reindex方法

reindex更多的不是修改pandas对象的索引,而只是修改索引的顺序,如果修改的索引不存在就会使用默认的None代替此行。且不会修改原数组,要修改需要使用赋值语句。 series.r...

Python实现控制台进度条功能

Python实现控制台进度条功能

本文实例讲述了Python显示进度条的方法,是Python程序设计中非常实用的技巧。分享给大家供大家参考。具体方法如下: 首先,进度条和一般的print区别在哪里呢? 答案就是print...

python django 增删改查操作 数据库Mysql

下面介绍一下django增删改查操作: 1、view.py # -*- coding: utf-8 -*- from __future__ import unicode_litera...

详解在Python中处理异常的教程

什么是异常? 异常是一个事件,其中一个程序,破坏程序的指令的正常流的执行过程中而发生的。一般情况下,当一个Python脚本遇到一些情况不能处理,就抛出一个异常。异常是一个Python对象...

深入理解python中的atexit模块

atexit 模块介绍 python atexit 模块定义了一个 register 函数,用于在 python 解释器中注册一个退出函数,这个函数在解释器正常终止时自动执行,一般用来...