Confronto del numero di parametri
Hai visto che la rappresentazione one-hot non è una buona rappresentazione delle parole perché è molto sparsa. Usare il livello Embedding crea una rappresentazione densa dei vettori, ma richiede anche molti parametri da apprendere.
In questo esercizio confronterai il numero di parametri di due modelli che usano embeddings e codifica one-hot per vedere la differenza.
Il modello model_onehot è già caricato nell'ambiente, così come Sequential, Dense e GRU da keras. Infine, anche i parametri vocabulary_size=80000 e sentence_len=200 sono già caricati.
Questo esercizio fa parte del corso
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras
Istruzioni dell'esercizio
- Importa il livello
Embeddingdakeras.layers. - Nel livello di embedding, usa la dimensione del vocabolario più uno come dimensione di input e la dimensione della frase come lunghezza di input.
- Compila il modello.
- Stampa il riepilogo del modello con embedding.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Import the embedding layer
from tensorflow.keras.layers import ____
# Create a model with embeddings
model = Sequential(name="emb_model")
model.add(Embedding(input_dim=____, output_dim=wordvec_dim, input_length=____, trainable=True))
model.add(GRU(128))
model.add(Dense(1))
model.____(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Print the summaries of the one-hot model
model_onehot.summary()
# Print the summaries of the model with embeddings
model.____