tensorflow保存读取数据出现NotFoundError (see above for traceback): Key v1_3 not found in checkpoint [[Node

解决方法如下:
保存

# tensorflow模型持久化 saver
# 保存模型
import tensorflow as tf

#声明两个变量并计算它们的和
v1 = tf.Variable(tf.constant(1.0,shape=[1]),dtype=tf.float32,name='v1')
v2 = tf.Variable(tf.constant(2.0,shape=[1]),dtype=tf.float32,name='v2')
result =v1 + v2

init_op =tf.global_variables_initializer()
saver = tf.train.Saver()
with tf.Session() as sess:
    sess.run(init_op)
#     将模型保存起来
    saver.save(sess,"chi_jiu_hua/model.ckpt")
tf.reset_default_graph()

读取

# 加载模型
import tensorflow as tf
v1 =tf.Variable(tf.constant(1.0,shape=[1]),name='v1')
v2 =tf.Variable(tf.constant(2.0,shape=[1]),name='v2')
result = v1+v2

saver = tf.train.Saver()
with tf.Session() as sess:
#     tf.reset_default_graph()
    tf.get_variable_scope().reuse_variables()         
#     加载已保存的模型
    saver.restore(sess,"chi_jiu_hua/model.ckpt")
    print(sess.run(result))

原因:
首先查看变量的dtype和shape
1、首先是自己定义的参数变量是否和保存的参数变量的类型是一致的

2、在文件下面是否有一个叫做chockpoint的东西存在

3、最后如果运行多次出现NotFoundError (see above for traceback): Key Variable_4 not found in checkpoint

[[Node: save_2/RestoreV2 = RestoreV2[dtypes=[DT_FLOAT, DT_FLOAT, DT_FLOAT,

这种情况,请使用tf.reset_default_graph(),还有就是这句话要放在前面一点。

4、还有就是保存好了模型,如果使用的是spyder请先关闭,之后在尝试读入模型

如果以上都无法解决你的问题,请删除模型之后,重新写入,再载入试试。

猜你喜欢

转载自blog.csdn.net/weiyumeizi/article/details/81483371
今日推荐