2017-10-09 275 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" 
    

    載入關卡應該成爲可能。

    相關問題