Как использовать загруженную модель внимания LSTM для прогнозирования ввода? - PullRequest
2 голосов
/ 10 октября 2019

Я начинающий в Deep Learning & Keras. Я хочу построить иерархическую сеть внимания, которая помогает классифицировать комментарии на несколько категорий, а именно. ядовитый, сильно токсичный и т. д. Я взял код из открытого хранилища и сохранил модель. Затем я загрузил модель, используя model_from_json. Теперь я хочу использовать эту загруженную модель для прогнозирования входного текста (заданного как ввод Python или как отдельный файл).

Это код, который я использую: https://www.kaggle.com/sermakarevich/hierarchical-attention-network/notebook

Тогда я сделал:

model_json = model.to_json()
with open("model.json", "w") as json_file:
    json_file.write(model_json)
model.save_weights("model.h5")
print("Saved model to disk")

Затем в отдельном файле:

json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json,custom_objects={'AttentionWithContext':AttentionWithContext})
loaded_model.load_weights("model.h5")
print("Loaded model from disk")

Я получаю "загруженную модель с диска" отлично. Я хотел бы знать формат, в котором мне нужно дать ввод и как и фрагмент кода, чтобы использовать модель для его классификации. Поскольку я не очень разбираюсь в этом, было бы очень полезно, если бы кто-нибудь помог мне с кодом, специфичным для python, чтобы он работал.

1 Ответ

0 голосов
/ 11 октября 2019

При выполнении прогноза, пожалуйста, убедитесь, что вы также засолите токенизатор, иначе результат будет неправильным.

    new = ["Your_text_that_you_want_to_check"]
    seq = tokenizer.texts_to_sequences(new)
    padded = pad_sequences(seq, maxlen=MAX_SEQUENCE_LENGTH)
    pred = model.predict(padded)

При прогнозировании очень важно преобразовать ваш новый текст в вектор так, чтобы вашмодель обучена. Я преобразовал свои тренировочные данные в последовательность, а затем добавил их в ноль, чтобы длина была такой же, и те же шаги, которые я повторял при прогнозировании. Но убедитесь, что вы мариноваете свой токенсиер. Я надеюсь, что это помогает! Дайте мне знать, если вам сложно понять шаги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...