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

yipeiwu_com5年前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中操作列表之List.pop()方法的使用

 pop()方法从列表移除并返回最后一个对象或obj。 语法 以下是pop()方法的语法: list.pop(obj=list[-1]) 参数  &n...

2019 Python最新面试题及答案16道题

1.Python是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一、对象的引用计数机制 Python内部使用引用计数,来保持追踪内存中的对...

python 表达式和语句及for、while循环练习实例

Python中表达式和语句及for、while循环练习 1)表达式 常用的表达式操作符: x + y, x - y x * y, x / y, x // y, x % y 逻辑运算...

anaconda中更改python版本的方法步骤

anaconda中更改python版本的方法步骤

anaconda是一个非常好用的python发行版本,其中包含了大部分常用的库。 最新的anaconda中python版本已经更新到了python3.6,而tensorflow只支持py...

Python解析Excle文件中的数据方法

Python解析Excle文件中的数据方法

在公司里面,人力资源部每到发工资的时候就会头疼,如果公司内部有100多号员工,那么发完工资后需要给员工发送工资条的话,那么就需要截图如下图, 但是在公司的薪水保密协议不允许公开所有人的...