восстановить модель Tensorflow без извлечения из каталога - PullRequest
0 голосов
/ 09 октября 2018

В настоящее время я сохраняю и восстанавливаю модели нейронных сетей, используя класс Saver Tensorflow, как показано ниже:

saver.save(sess, checkpoint_prefix, global_step=step)

saver.restore(sess, checkpoint_file)

Сохраняет .ckpt файлы модели по указанному пути.Поскольку я провожу несколько экспериментов, у меня ограничено пространство для сохранения этих моделей.

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

Пример.Могу ли я просто передать какой-то объект в последней контрольной точке какой-либо функцииvalu () и восстановить модель из этого объекта?

Насколько я вижу, параметр save_path в tf.train.Saver.restore() не является обязательным.

Любое понимание будет высоко ценится.

Спасибо

1 Ответ

0 голосов
/ 15 октября 2018

Вы можете использовать загруженный график и веса для оценки так же, как вы тренируетесь.Вам просто нужно изменить входные данные из вашего оценочного набора.Вот некоторый псевдокод цикла поезда с циклом оценки каждые 1000 итераций (предполагается, что вы создали tf.Session с именем sess):

x = tf.placeholder(...)
loss, train_step = model(x)
for i in range(num_step):
    input_x = get_train_data(i)
    sess.run(train_step, feed_dict={x: input_x})
    if i % 1000 == 0 and i != 0:
        eval_loss = 0
        for j in range(num_eval):
            input_x = get_eval_data(j)
            eval_loss += sess.run(loss, feed_dict={x: input_x})
        print(eval_loss/num_eval)

Если вы используете tf.dataдля вашего ввода вы можете просто создать tf.cond, чтобы выбрать, какой вход использовать:

is_training = tf.placeholder(tf.bool)
next_element = tf.cond(is_training,
                        lambda: get_next_train(),
                        lambda: get_next_eval())

get_next_train и get_next_eval должны будут создать все операции, которые используются для чтения набора данных, илииначе могут возникнуть побочные эффекты при запуске вышеуказанного кода.

Таким образом, вам не нужно ничего сохранять на диск, если вы этого не хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...