2017-10-09 20 views
0

Voici mon modèle enregistré sur le disque:tensorflow - ne peut pas restaurer le modèle - « Impossible de correspondre à des fichiers de point de contrôle »

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) 

Tout en essayant de restaurer

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

Je reçois ce qui suit message d'erreur:

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

Dans C:\tmp\tmp\ j'ai les fichiers suivants:

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

Des pensées?

Répondre

1

Les fichiers juste nommés sont-ils en ligne? en commençant par dot?

Si tel est le cas, vous devriez envisager de les enregistrer différemment, car cela pourrait être le problème.

Essayez avec:

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

Ce qui est généralement fait est d'enregistrer aussi le global_step que le nombre de ckpt.

Espérons l'avoir résolu!

+0

Votre solution fonctionne probablement. Ce que j'ai fait, j'ai simplement écrit r'C: \ tmp \ tmp \ prefix_name '. 'prefix_name' est traité comme un nom de préfixe et non comme une partie du chemin dans tensorflow. – user1700890

1

De saver.save tensorflow api:

save_path: String. Chemin d'accès au nom de fichier de point de contrôle. Si l'économiseur est partagé, il s'agit du préfixe du nom de fichier de point de contrôle partagé.

En save_path vous n'avez pas spécifié de nom de fichier de point de contrôle. Pour une utilisation future, essayez le réglage: checkpoint_path = r'C:\tmp\tmp\my-model'.

Si vous voulez charger votre modèle précédemment enregistré, procédez comme suit:

  1. précédez la chaîne my-model pour ces fichiers:
.data-00000-of-00001 
.index 
.meta 
  1. modifier le fichier checkpoint de sorte qu'il pointe vers votre point de contrôle:
model_checkpoint_path: "C:\tmp\tmp\my-model" 
all_model_checkpoint_paths: "C:\tmp\tmp\my-model" 

Chargement du point de contrôle doit être maintenant possible.