Я следовал руководству здесь: (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
на тестовом наборе данных.
Спасибо и с нетерпением жду ваших ответов!