2016-11-28 2 views
0

Я обучил автокодер и сохранил сеанс с помощью Saver. Теперь я хочу обучить отдельную модель, которая будет использовать кучу обучаемых переменных, которые я должен кодировать, и передавать ее по MLP. Дело в том, что у меня возникла проблема с загрузкой модели autoencoder в мою новую модель, даже с помощью функций экспорта/импорта Saver.TensorFlow: Как восстановить обучаемые переменные одной модели в другую?

Возможно ли это? Я продолжаю получать 'Не удалось открыть encoder.ckpt: Потеря данных: не sstable (плохое магическое число), возможно, ваш файл находится в другом формате, и вам нужно использовать другой оператор восстановления?

Любая помощь будет оценена!

+0

Если переменные, переданные в заставку, имеют одинаковое имя в обеих моделях, это должно работать. Однако упомянутая вами ошибка не связана. Можете ли вы опубликовать полную трассировку стека? –

ответ

0

Возможно, это комментарий, но, как упомянуто @Alexandre Passos, saver.restore (encoder.ckpt) должен работать, если вы определили все переменные/операции раньше. Если у вас нет, вам нужно будет загрузить сохраненный график, как

saver = tf.train.import_meta_graph(encoder.ckpt.meta) 
saver.restore(encoder.ckpt) 

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

graph = tf.get_default() 
restored_var = graph.get_tensor_by_name(restored_var_name) 

Вы также может захотеть проверить ваш файл контрольной точки, чтобы убедиться, что у вас есть путь записи к вашему файлу encoder.ckpt.

Смежные вопросы