ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Añade una capa « Embedding » como primera capa del modelo.
  • Añade una segunda capa de « LSTM » con 64 unidades returning a 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)))
Editar y ejecutar código