2017-02-21 23 views
0

Я начал изучать библиотеку TensorFlow и тестировал классификацию изображений example, в которой используются данные MNIST. Я хочу, чтобы модель была сохранена в файле после завершения фазы обучения, чтобы я мог использовать ее по мере необходимости. Я проверил this link, который рассказывает о том, как сохранить значения из TensorFlow в любой файл и прочитать это. До сих пор я могу сохранить некоторые переменные из сценария в файл, используя pickle, как это предлагается в ссылке. Но я не могу понять, что нужно сохранить в файле, чтобы сохранить текущее состояние модели для ее последующего использования. Пожалуйста, кто-нибудь может объяснить эту часть примера с сохранением модели и загрузкой этой модели.Что нужно сохранить для повторного использования модели в TensorFlow

ответ

1

Для сохранения и восстановления переменных в Tensorflow необходимы следующие вещи.

1) Список переменных, которые будут сохранены и восстановлены 2) tf.train.Saver

Как правило, 1) достигается за счет

# To save and restore whole tf variables 
all_vars = tf.global_variables() 

или,

# To save and restore the specific tf variables using scope 
all_vars = tf.global_variables() 
model_vars = [k for k in all_vars if k.name.startswith("xxx")] 
# "xxx" is the expected scope 

Затем 2) достигается

saver = tf.train.Saver(vars_list) 
# vars_list is list of variables from above 

Наконец, чтобы сохранить переменные (с tf.Session() работает с именем 'Sess')

saver.save(sess, '/directory/to/chechpoint/file.ckpt') 

и восстановить их,

saver.restore(sess, '/directory/to/chechpoint/file.ckpt') 
0

Во-первых, вы должны это проверить other question.

У TensorFlow есть методы, предназначенные для управления сохранением и восстановлением контрольных точек , в частности, класса tf.train.saver. Ознакомьтесь с официальной документацией here. Контрольные точки в основном хранят значения ваших тензоров (среди прочего) на диске.

Цитируя документации:

Checkpoints бинарные файлы в собственном формате, отображающие имена переменных значений тензора. Лучший способ проверить содержимое контрольной точки - загрузить ее с помощью Saver.

0

Только Variables могут быть сохранены и восстановлены. Когда вам нужно повторно использовать сохраненные переменные, вам нужно сначала построить график, создав нейронную сеть и установив параметры NN, такие как номера слоев, скорость обучения и выпадение и т. Д. Единственными значениями, восстановленными с контрольной точки, являются переменные, определенные в тренинге обработать. Вы можете взглянуть на любой пример, например this one.

Подводя итог, можно сохранять и восстанавливать только переменные, настройки нейронной сети и placeholders не могут.