Les embeddings améliorent la performance
La couche d'intégration (embedding) améliore-t-elle la justesse du modèle? Vérifions-le sur les mêmes données IMDB.
Le modèle a déjà été entraîné pendant 10 époques, comme le modèle précédent avec une cellule simpleRNN. Pour comparer les modèles, un ensemble de test (X_test, y_test) est disponible dans l'environnement, de même que l'ancien modèle simpleRNN_model. La justesse de l'ancien modèle est chargée dans la variable acc_SimpleRNN.
Tous les modules et fonctions requis sont chargés dans l'environnement : Sequential() de keras.models, Embedding et Dense de keras.layers, ainsi que SimpleRNN de keras.layers.
Cette activité fait partie du cours
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras
Instructions de l’exercice
- Ajoutez la couche d'intégration (embedding) au modèle.
- Calculez la justesse du modèle et stockez-la dans la variable
acc_embeddings. - Affichez la justesse de l'ancien et du nouveau modèle.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create the model with embedding
model = Sequential(name="emb_model")
model.add(____(input_dim=max_vocabulary, output_dim=wordvec_dim, input_length=max_len))
model.add(SimpleRNN(units=128))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Load pre-trained weights
model.load_weights('embedding_model_weights.h5')
# Evaluate the models' performance (ignore the loss value)
_, ____ = model.evaluate(X_test, y_test, verbose=0)
# Print the results
print("SimpleRNN model's accuracy:\t{0}\nEmbeddings model's accuracy:\t{1}".format(acc_simpleRNN, ____))