TFLearn / Tensorflow: правильный способ сохранить кодировщик, извлеченный из автокодировщика

Эта проблема изначально была опубликована в репозитории tflearn github, но мне там не повезло: https://github.com/tflearn/tflearn/issues/682

Я пытаюсь сохранить модель кодировщика, представляющую средний уровень из автокодировщика. Используя пример MNIST, когда я запускаю скрипт, найденный здесь:

https://github.com/tflearn/tflearn/blob/master/examples/images/autoencoder.py

а затем попытайтесь сохранить encoding_model, используя

encoding_model = tflearn.DNN(encoder, session=model.session)
encoding_model.save('encoder.tfl')

Я получаю следующее сообщение об ошибке:

Отслеживание (последний вызов последним): файл "", строка 1, в файле "/usr/local/lib/python2.7/dist-packages/tflearn/models/dnn.py", строка 260, в сохранении self.trainer .save (файл_модели) Файл "/usr/local/lib/python2.7/dist-packages/tflearn/helpers/trainer.py", строка 376, в сохранении self.saver.save (self.session, model_file, global_step = global_step) Файл "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", строка 1363, в файле save {self.saver_def.filename_tensor_name: checkpoint_file}) File "/ usr / local / lib / python2.7 / dist-packages / tensorflow / python / client / session.py ", строка 767, в run_metadata_ptr) Файл" /usr/local/lib/python2.7/dist-packages/tensorflow/python /client/session.py ", строка 965, в _run feed_dict_string, options, run_metadata) Файл" /usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py ", строка 1015, в _do_run target_list, options, run_metadata) Файл "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.p y ", строка 1035, в _do_call тип повышения (e) (node_def, op, message) tensorflow.python.framework.errors_impl.FailedPreconditionError: Попытка использовать неинициализированное значение Global_Step_1 [[Node: Global_Step_1 / _96 = _SendT = DT_FL false, recv_device = "/ job: localhost / replica: 0 / task: 0 / cpu: 0", send_device = "/ job: localhost / replica: 0 / task: 0 / gpu: 0", send_device_incarnation = 1, tensor_name = "edge_31_Global_Step_1", _device = "/ job: localhost / replica: 0 / task: 0 / gpu: 0"]]

Я думаю, что переменные оптимизатора ADAM не инициализированы. Как правильно сохранить такую ​​модель?


person user1489497    schedule 29.03.2017    source источник


Ответы (1)


В тензорном потоке вы не сохраняете в файл .tfl.

saver = tf.train.Saver()

а затем сохраните в .cpkt

Ознакомьтесь с этим руководством по сохранению: https://www.tensorflow.org/programmers_guide/saved_model

person Zoe    schedule 21.11.2017