Подтвердить что ты не робот

Tensorflow - ValueError: родительский каталог training_variables.ckpt не существует, не может сэкономить

Я хочу сохранить сеанс tenorflow sess, но у меня есть следующая ошибка

ValueError: Parent directory of trained_variables.ckpt doesn't exist, can't save.

Это моя строка кода:

saver.save(sess, "trained_variables.ckpt")

Я также попытался изменить имя файла и поместить model вместо trained_variables.ckpt, но я получаю ту же проблему.

Следуя этому руководству Учебное пособие TensorFlow: Классификация по электронной почте

4b9b3361

Ответ 1

Я бы предположил, что вы пытаетесь сохранить файл в папке (каталоге), которая не существует...

Попробуйте использовать абсолютный путь для файла вместо простого имени файла.

Возможно, вы захотите проверить, каков ваш текущий рабочий каталог..., который мог бы прояснить ситуацию.

Помогает ли это?

-josh

Ответ 2

saver.save(sess, "./trained_variables.ckpt")

Ответ 3

Я поставил абсолютный путь к файлу вместо открытого имени файла, и он сработал. Это окончательный код

saver.save(sess, os.path.join(os.getcwd(), 'trained_variables2.ckpt'))

Ответ 4

Вот что я сделал

 modelName = "YourModelName"
 saver.save(session, './'+modelName) 

Я считаю, что это должно сработать для вас.

Ответ 5

Я не уверен, что понимаю. Вы пытаетесь сохранить переменные в текущем каталоге, поэтому странно, что он говорит, что родитель текущего каталога не существует. Вы можете попробовать это

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')

Это сработало для меня. Как правило, вы всегда должны убедиться, что существует путь к тому, где вы хотите хранить контрольные точки. Что-то вроде этого:

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)

Ответ 6

save_path всегда должен быть путь вместо имени файла. Я бы не назвал это ошибкой, но лучше, чтобы TensorFlow мог добавить код для автоматического преобразования имени файла "abc" в "./abc", чтобы сделать его более удобным.

В tensorflow/python/training/saver.py:

Линия:

save_path_parent = os.path.dirname(save_path) 

попытается получить имя пути, если вы подаете только имя файла без пути, save_path_parent станет пустым и завершит более поздний тест:

gfile.IsDirectory(save_path_parent)

Таким образом, вы должны всегда указывать путь + имя файла при использовании метода saver.save(). Использование только имени файла приведет к этой ошибке.

Ответ 7

Вы можете использовать текущий рабочий каталог:

import os​​
checkpoint = os.path.join(os.getcwd(), 'chatbot_weights.ckpt')​