Перезагрузка токенизатора Keras во время тестирования

Я следовал руководству здесь: (https://blog.keras.io/using-pre-trained-word-embeddings-in-a-keras-model.html)

Однако я изменил код, чтобы можно было сохранить сгенерированную модель через h5py. Таким образом, после запуска обучающего скрипта у меня в каталоге есть сгенерированный model.h5.

Теперь, когда я хочу загрузить его, моя проблема в том, что я не понимаю, как повторно инициировать Tokenizer. Учебник имеет следующую строку кода:

tokenizer = Tokenizer(nb_words=MAX_NB_WORDS)
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)

Но гипотетически, если я перезагружу model.h5 в другом модуле, мне нужно будет создать еще один Tokenizer для токенизации тестового набора. Но тогда новый Tokenizer будет соответствовать тестовым данным, создавая совершенно другую таблицу слов.

Поэтому мой вопрос: как мне перезагрузить Tokenizer, который был обучен на обучающем наборе данных? Я как-то неправильно понимаю функциональность слоя Embedding в Keras? Прямо сейчас я предполагаю, что, поскольку мы сопоставили определенные индексы слов с соответствующими векторами встраивания на основе предварительно обученных вложений слов, индексы слов должны быть согласованными. Однако это невозможно, если мы выполним еще fit_on_texts на тестовом наборе данных.

Спасибо и с нетерпением жду ваших ответов!


person Vandenn    schedule 26.06.2017    source источник
comment
Возможный дубликат Keras Text Preprocessing - сохранение объекта Tokenizer в файл для оценки   -  person xenocyon    schedule 17.11.2017


Ответы (1)


Проверьте этот вопрос Комментатор рекомендует использовать pickle для сохранения объекта и состояния, хотя остается вопрос, почему такого рода функциональность не встроена в keras.

person Miriam Herm    schedule 05.07.2017