2 votes

Comment utiliser un modèle d'attention LSTM chargé pour faire des prédictions sur l'entrée ?

Je suis un débutant complet en Deep Learning et Keras. Je veux construire un réseau d'attention hiérarchique qui aide à classer les commentaires en plusieurs catégories : toxiques, sévèrement toxiques, etc. J'ai pris le code d'un dépôt ouvert et enregistré le modèle. J'ai ensuite chargé le modèle en utilisant model_from_json. Maintenant, je souhaite utiliser ce modèle chargé pour faire des prédictions sur le texte d'entrée (donné comme une entrée python ou comme un fichier séparé).

Voici le code que j'utilise : https://www.kaggle.com/sermakarevich/hierarchical-attention-network/notebook

Alors je l'ai fait :

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")

Puis dans un fichier séparé :

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")

J'obtiens parfaitement "modèle chargé depuis le disque". Je souhaite connaître le format dans lequel je dois saisir les données et comment et le bout de code pour utiliser le modèle afin de le classer. Comme je n'ai pas beaucoup de connaissances à ce sujet, il serait vraiment utile si quelqu'un pouvait m'aider avec le code spécifique à Python pour le faire fonctionner.

0voto

Sagar Dubey Points 100

Lorsque vous faites la prédiction, assurez-vous que vous sélectionnez également le tokenizer, sinon la sortie ne sera pas correcte.

    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)

Pendant la prédiction, il est très important de convertir votre nouveau texte en vecteur tel que votre modèle est entraîné. J'ai converti mes données d'entraînement en séquence puis je les ai remplies de zéro pour que la longueur soit la même et j'ai répété les mêmes étapes pour la prédiction. Mais assurez-vous de bien mariner votre tokenzier. J'espère que cela vous aidera ! Faites-moi savoir si vous avez des difficultés à comprendre les étapes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X