Как импортировать (восстановить) модель нейронной сети, созданную tflearn из файлов - PullRequest
0 голосов
/ 07 мая 2018

Я имею в виду это учебное пособие по классификации текста и создал специальный обучающий набор для классификации текста.

Я сохраняю модель с кодом ниже.

# Define model and setup tensorboard
model = tflearn.DNN(net, tensorboard_dir='tflearn_logs')
# Start training (apply gradient descent algorithm)
model.fit(train_x, train_y, n_epoch=1000, batch_size=8, show_metric=True)
model.save('model.tflearn')

Создает файлы ниже.

model.tflearn.data-00000-of-00001
model.tflearn.index
model.tflearn.meta
tflearn_logs folder

Я хочу использовать модель, построенную на разных итерациях, для целей тестирования.

Я пытался,

with tf.Session() as sess:
    saver = tf.train.import_meta_graph('model.tflearn.meta')
    saver.restore(sess, tf.train.latest_checkpoint('./'))

но я получаю;

KeyError: «Имя« adam »относится к операции, не указанной в графике.» ошибка

Я знаю из документации , что tflearn.DNN(network).load('file_name') загружает модель, но нам нужно создать и передать экземпляр сети, чтобы построить сеть, мы снова проходим через тот же код с нуля, который требует времени, так как он будет делать тренировки, которых я хочу избежать.

Код для построения сети

net = tflearn.input_data(shape=[None, len(train_x[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(train_y[0]), activation='softmax')
net = tflearn.regression(net)

tflearn.input_data имеет обязательный ввод формы, поэтому нам снова понадобятся данные тренировки для повторной подачи. Так что это вызывает перестройку модели. Я проверил документацию, не смог найти то, что мне нужно (2-3 строки кода, которые импортировали бы модель нейронной сети для экономии времени переобучения.

Пожалуйста, дайте мне знать, если вы, ребята, знаете решение для этого.

Аналогичный вопрос , но он не повторяется

  • OP столкнулся с проблемой при построении нейронной сети во время построения дерева, в то время как я столкнулся с проблемой при импорте модели сборки.
  • Учебник, упомянутый в ответе, не поддерживает импорт модели tflearn NN

1 Ответ

0 голосов
/ 12 июня 2018

Мне удалось восстановить сохраненную модель с кодом ниже.

tflearn может восстановить модель из сохраненного журнала и файлов модели.

Создание фиктивной нейронной сети того же размера, что и сохраненная модель

Примечание. Может потребоваться отслеживать веса ранее сохраненных моделей (размер входного обучения и соответствующие классы)

net = tflearn.input_data(shape=[None, train_x[0]])
net = tflearn.fully_connected(net, 8, restore=False)
net = tflearn.fully_connected(net, 8, restore=False)
net = tflearn.fully_connected(net, train_y[0], activation='softmax', restore=False)
dnn = tflearn.DNN(net, tensorboard_dir='tflearn_logs')

Загрузить сохраненную модель в DNN

model = dnn.load('./model.tflearn')
Используйте загруженную модель для прогнозов
test_data = ###converted data 
model.predict(test_data)
...