Je veux enregistrer ma session tensorflow sess
mais j'ai l'erreur suivante
ValueError: Parent directory of trained_variables.ckpt doesn't exist, can't save.
Ceci est ma ligne de code:
saver.save(sess, "trained_variables.ckpt")
J'ai aussi essayé de changer le nom du fichier et de mettre model
au lieu de trained_variables.ckpt
mais le même problème se pose.
Suite à ce didacticiel Didacticiel TensorFlow: Classification des courriers électroniques
Je suppose que vous essayez de sauvegarder le fichier dans un dossier (répertoire) qui n'existe pas ...
Essayez d’utiliser un chemin absolu pour le fichier au lieu du nom de fichier seul.
Vous voudrez peut-être vérifier quel est votre répertoire de travail actuel ... cela pourrait éclaircir les choses.
Est ce que ça aide?
-Josh
saver.save(sess, "./trained_variables.ckpt")
Voici ce que j'ai fait
modelName = "YourModelName"
saver.save(session, './'+modelName)
Je crois que cela devrait fonctionner pour vous.
Je ne suis pas sûr de comprendre. Vous essayez de stocker les variables dans le répertoire en cours, il est donc étrange de dire que le parent du répertoire en cours n'existe pas Pouvez-vous essayer ceci
v = tf.Variable(tf.constant(0))
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
saver = tf.train.Saver()
saver.save(sess, 'trained_variables.ckpt')
Cela a fonctionné pour moi. En règle générale, vous devez toujours vous assurer que le chemin d'accès à l'emplacement où vous souhaitez stocker les points de contrôle existe. Quelque chose comme ça:
save_path = 'checkpoints/'
model_name = 'my_model'
if not os.path.exists(save_path):
os.makedirs(save_path)
...
saver = tf.train.Saver()
save_path_full = os.path.join(save_path, model_name)
with tf.Session() as sess:
...
saver.save(sess, save_path_full)
chemin_sauvegarde devrait toujours être un chemin au lieu d'un nom de fichier ici. Je n'appellerais pas cela un bug, mais il est préférable que TensorFlow ajoute du code pour convertir automatiquement le nom de fichier "abc" en "./abc" pour le rendre plus pratique.
Dans tensorflow/python/training/saver.py :
Ligne:
save_path_parent = os.path.dirname(save_path)
essaiera d’obtenir le chemin, si vous n’indiquez qu’un nom de fichier sans chemin, save_path_parent deviendra vide et échouera au test suivant:
gfile.IsDirectory(save_path_parent)
Vous devez donc toujours fournir un chemin + nom de fichier lorsque vous utilisez la méthode saver.save (). Utiliser uniquement le nom du fichier entraînera cette erreur.
Vous pouvez utiliser votre répertoire de travail actuel:
import os
checkpoint = os.path.join(os.getcwd(), 'chatbot_weights.ckpt')