Aprendizaje por transferencia
Has visto que, al entrenar una capa de incrustación, es necesario aprender muchos parámetros.
En este ejercicio, verás que al utilizar el aprendizaje por transferencia es posible utilizar los pesos preentrenados y no actualizarlos, lo que significa que todos los parámetros de la capa de incrustación serán fijos y el modelo solo tendrá que aprender los parámetros de las otras capas.
La función load_glove ya está cargada en el entorno y recupera la matriz del guante como un vector numpy.ndarray. Utiliza la función explicada en las diapositivas de la lección para recuperar los vectores glove con 200 dimensiones de incrustación para el vocabulario presente en este ejercicio.
Este ejercicio forma parte del curso
Redes neuronales recurrentes (RNN) para el modelado del lenguaje con Keras
Instrucciones del ejercicio
- Utiliza la función predefinida para cargar los vectores de guantes.
- Utiliza el inicializador
Constanten los vectores preentrenados. - Añade la capa de salida como una red neuronal convolucional (
Dense) con una unidad. - Imprime el resumen y comprueba los parámetros entrenables.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Load the glove pre-trained vectors
glove_matrix = ____('glove_200d.zip')
# Create a model with embeddings
model = Sequential(name="emb_model")
model.add(Embedding(input_dim=vocabulary_size + 1, output_dim=wordvec_dim,
embeddings_initializer=____(glove_matrix),
input_length=sentence_len, trainable=False))
model.add(GRU(128))
model.add(____)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Print the summaries of the model with embeddings
model.____