Transfer learning
Hai visto che durante l’addestramento di un livello di embedding è necessario apprendere molti parametri.
In questo esercizio vedrai che, usando il transfer learning, è possibile sfruttare pesi pre-addestrati e non aggiornarli: in questo modo tutti i parametri del livello di embedding restano fissi e il modello dovrà apprendere solo i parametri degli altri livelli.
La funzione load_glove è già caricata nell’ambiente e recupera la matrice GloVe come un vettore numpy.ndarray. Usa la funzione mostrata nelle diapositive della lezione per ottenere i vettori GloVe con 200 dimensioni di embedding per il vocabolario presente in questo esercizio.
Questo esercizio fa parte del corso
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras
Istruzioni dell'esercizio
- Usa la funzione predefinita per caricare i vettori GloVe.
- Usa l’inizializzatore
Constantsui vettori pre-addestrati. - Aggiungi il livello di output come
Densecon un’unità. - Stampa il summary e controlla i parametri addestrabili.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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.____