Meilleure classification des sentiments
Dans cet exercice, vous revenez au problème de classification des sentiments abordé au chapitre 1.
Vous allez ajouter de la complexité au modèle et améliorer sa précision. Vous utiliserez une couche d'Embedding
ion pour entraîner les vecteurs de mots sur l'ensemble d'entraînement et deux couches d'LSTM
ion pour suivre les textes plus longs. De plus, vous ajouterez une couche d'Dense
e supplémentaire avant la sortie.
Il ne s'agit plus d'un modèle simple, et la formation peut prendre un certain temps. Pour cette raison, un modèle pré-entraîné est disponible en chargeant ses poids à l'aide de la méthode .load_weights()
de la classe keras.models.Sequential
. Le modèle a été entraîné avec 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 neuronaux récurrents (RNN) pour la modélisation du langage avec Keras
Instructions
- Ajoutez une couche d'
Embedding
s comme première couche du modèle. - Ajoutez une deuxième couche d'
LSTM
avec 64 unités et l'returning
s séquences. - Ajoutez une couche d'
Dense
e supplémentaire avec 16 unités. - Évaluez le modèle afin d'imprimer 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)))