3

j'ai suivi le tutoriel ici: (https://blog.keras.io/using-pre-trained-word-embeddings-in-a-keras-model.html)Rechargement Keras Tokenizer au cours des essais

Cependant, j'ai modifié le code pour pouvoir enregistrer le modèle généré par h5py. Ainsi, après l'exécution du script de formation, j'ai généré un model.h5 dans mon répertoire.

Maintenant, quand je veux le charger, mon problème est que je suis confus quant à la façon de re-initier le Tokenizer. Le tutoriel a la ligne de code suivante:

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

Mais hypothétiquement, si je Charger à nouveau le model.h5 dans un module différent, je devrai créer une autre Tokenizer pour tokenizer l'ensemble de test. Mais alors, le nouveau Tokenizer sera ajusté sur les données de test créant ainsi une table de mots complètement différente. Par conséquent, ma question est: Comment recharger le Tokenizer qui a été formé sur le jeu de données d'entraînement? Ai-je en quelque sorte mal compris la fonctionnalité de la couche Embedding dans Keras? À l'heure actuelle, je suppose que puisque nous avons mappé certains index de mots à leurs vecteurs d'inclusion correspondants en fonction des plongements de mots pré-formés, les indices de mots doivent être cohérents. Cependant, cela n'est pas possible si nous effectuons un autre fit_on_texts sur l'ensemble de données de test.

Merci et dans l'attente de vos réponses!

+5

Copie possible de [Pré-traitement du texte Keras - Enregistrement de l'objet Tokenizer dans le fichier à scorer] (https://stackoverflow.com/questions/45735070/keras-text-preprocessing-saving-tokenizer-object-to-file-for- notation) – xenocyon

Répondre

2

Check out this question L'intervenant recommande d'utiliser des conserves au vinaigre pour sauver l'état objet &, bien que la question reste la raison pour laquelle ce type de fonctionnalité est pas intégrée dans keras.