Mejor clasificación del sentimiento
En este ejercicio, volverás al problema de clasificación de sentimientos visto en el capítulo 1.
Vas a añadir más complejidad al modelo y mejorar su precisión. Utilizarás una capa « Embedding » para entrenar vectores de palabras en el conjunto de entrenamiento y dos capas « LSTM » para realizar un seguimiento de los textos más largos. Además, añadirás una capa adicional « Dense » antes de la salida.
Ya no se trata de un modelo sencillo, y la formación puede llevar algún tiempo. Por este motivo, hay disponible un modelo preentrenado que se puede cargar con el método « .load_weights() » de la clase « keras.models.Sequential ». El modelo se entrenó con 10 épocas y sus pesos están disponibles en el archivo model_weights.h5.
Los siguientes módulos están cargados en el entorno: Sequential, Embedding, LSTM, Dropout, Dense.
Este ejercicio forma parte del curso
Redes neuronales recurrentes (RNN) para el modelado del lenguaje con Keras
Instrucciones del ejercicio
- Añade una capa «
Embedding» como primera capa del modelo. - Añade una segunda capa de «
LSTM» con 64 unidadesreturninga las secuencias. - Añade una capa extra de «
Dense» con 16 unidades. - Evalúa el modelo para imprimir la precisión en el conjunto de entrenamiento.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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)))