Tensorflow Eager: сохранение и восстановление обучаемых переменных - PullRequest
0 голосов
/ 28 апреля 2018

Я написал пользовательскую модель с Tensorflow Eager (аналогично этому примеру ). Я хочу хранить / восстанавливать только мои обучаемые переменные - что-то похожее на следующую нелегкую логику. Как я могу сделать это в Eager?:

def store(self, sess_var, model_path):
    if model_path is not None:
        saver = tf.train.Saver(var_list=tf.trainable_variables())
        save_path = saver.save(sess_var, model_path)
        print("Model saved in path: %s" % save_path)
    else:
        print("Model path is None - Nothing to store")

def restore(self, sess_var, model_path):
    if model_path is not None:
        if os.path.exists("{}.index".format(model_path)):
            saver = tf.train.Saver(var_list=tf.trainable_variables())
            saver.restore(sess_var, model_path)
            print("Model at %s restored" % model_path)
        else:
            print("Model path does not exist, skipping...")
    else:
        print("Model path is None - Nothing to restore")

1 Ответ

0 голосов
/ 01 мая 2018

Стремительное выполнение в TensorFlow поощряет инкапсуляцию состояния модели в объектах, например в tf.keras.Model объектах. Состояние этих объектов («контрольных точек» значений переменных) затем можно сохранить и восстановить с помощью tf.contrib.eager.Checkpoint

Обратите внимание, что класс tf.contrib.eager.Checkpoint совместим как с нетерпением, так и с графиком.

Вы увидите, что это используется в примерах в хранилище тензорного потока, таких как this и this

Надеюсь, это поможет.

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