2017-10-09 218 views
0

这里是我的模型保存到磁盘:tensorflow - 不能恢复模型 - “无法匹配检查点文件”

import tensorflow as tf 
import numpy as np 


BATCH_SIZE = 3 
VECTOR_SIZE = 1 
LEARNING_RATE = 0.1 

x = tf.placeholder(tf.float32, [BATCH_SIZE, VECTOR_SIZE], 
        name='input_placeholder') 
y = tf.placeholder(tf.float32, [BATCH_SIZE, VECTOR_SIZE], 
        name='labels_placeholder') 

W = tf.get_variable('W', [VECTOR_SIZE, BATCH_SIZE]) 
b = tf.get_variable('b', [VECTOR_SIZE], initializer=tf.constant_initializer(0.0)) 

y_hat = tf.matmul(W, x) + b 
predict = tf.add(tf.matmul(W, x), b, name='predict') 
total_loss = tf.reduce_mean(y-y_hat) 
train_step = tf.train.AdagradOptimizer(LEARNING_RATE).minimize(total_loss) 
X = np.ones([BATCH_SIZE, VECTOR_SIZE]) 
Y = np.ones([BATCH_SIZE, VECTOR_SIZE]) 
all_saver = tf.train.Saver() 

sess= tf.Session() 
sess.run(tf.global_variables_initializer()) 
sess.run([train_step], feed_dict = {x: X, y:Y}) 
save_path = r'C:\tmp\tmp\\' 
all_saver.save(sess,save_path) 

在试图恢复

checkpoint_path = r'C:\tmp\tmp\\' 
tf.train.latest_checkpoint(checkpoint_path) 

我正在以下错误信息:

ERROR:tensorflow:Couldn't match files for checkpoint C:\tmp\tmp\\ 

C:\tmp\tmp\我有以下文件:

.data-00000-of-00001 
.index 
.meta 
checkpoint 

有什么想法?

回答

1

只是命名行的文件吗?从点开始?

如果这是你应该考虑拯救他们不同,因为这可能是问题的情况下。

尝试用:

NUMBER_OF_CKPT = 60 saver.save(sess,save_path,global_step=NUMBER_OF_CKPT)

什么,通常做的是也global_step保存为CKPT的数量。

希望有解决它!

+0

您的解决方案可能是工作。我做了什么,我只是写了r'C:\ tmp \ tmp \ prefix_name'。 'prefix_name'被视为前缀名称,而不是作为tensorflow中路径的一部分。 – user1700890

1

从saver.save tensorflow API:

的save_path:字符串。检查点文件名的路径。如果保存者被分片,则这是分片检查点文件名的前缀。

save_path您没有指定检查点文件名。

对于今后的使用,可以尝试设置: checkpoint_path = r'C:\tmp\tmp\my-model'

如果要加载之前保存的模式,做到以下几点:

  1. 前置字符串my-model这些文件:
.data-00000-of-00001 
.index 
.meta 
  • 修改checkpoint文件,使之指向你的检查点:
  • model_checkpoint_path: "C:\tmp\tmp\my-model" 
    all_model_checkpoint_paths: "C:\tmp\tmp\my-model" 
    

    载入关卡应该成为可能。

    相关问题