CommencerCommencer gratuitement

Une meilleure classification de sentiments

Dans cet exercice, vous revenez au problème de classification de sentiments vu au chapitre 1.

Vous allez ajouter de la complexité au modèle et améliorer sa précision. Vous utiliserez une couche Embedding pour entraîner des vecteurs de mots sur l’ensemble d’entraînement et deux couches LSTM pour prendre en compte des textes plus longs. Vous ajouterez également une couche Dense supplémentaire avant la sortie.

Ce n’est plus un modèle simple et l’entraînement peut prendre du temps. Pour cette raison, un modèle pré‑entraîné est disponible en chargeant ses poids avec la méthode .load_weights() de la classe keras.models.Sequential. Le modèle a été entraîné pendant 10 époques et ses poids sont disponibles dans le fichier model_weights.h5.

Les modules suivants sont chargés dans l’environnement : Sequential, Embedding, LSTM, Dropout, Dense.

Cet exercice fait partie du cours

Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Afficher le cours

Instructions

  • Ajoutez une couche Embedding en première couche du modèle.
  • Ajoutez une deuxième couche LSTM avec 64 unités en renvoyant les séquences.
  • Ajoutez une couche Dense supplémentaire avec 16 unités.
  • Évaluez le modèle pour afficher la précision sur l’ensemble d’entraînement.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Build and compile the model
model = Sequential()
model.add(____(vocabulary_size, wordvec_dim, trainable=True, input_length=max_text_len))
model.add(____(64, return_sequences=____, dropout=0.2, recurrent_dropout=0.15))
model.add(LSTM(64, return_sequences=False, dropout=0.2, recurrent_dropout=0.15))
model.add(____(16))
model.add(Dropout(rate=0.25))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Load pre-trained weights
model.load_weights('model_weights.h5')

# Print the obtained loss and accuracy
print("Loss: {0}\nAccuracy: {1}".format(*model.____(X_test, y_test, verbose=0)))
Modifier et exécuter le code