Jämförelse av antal parametrar
Som du såg är one-hot-representationen inte en bra representation av ord, eftersom den är mycket gles. Att använda ett Embedding-lager skapar en tät vektorrepresentation, men kräver också att många parametrar lärs in.
I den här övningen jämför du antalet parametrar i två modeller – en som använder embeddings och en som använder one-hot-kodning – för att se skillnaden.
Modellen model_onehot är redan inläst i miljön, liksom Sequential, Dense och GRU från keras. Parametrarna vocabulary_size=80000 och sentence_len=200 är också inlästa.
Den här övningen är en del av kursen
Återkommande neurala nätverk (RNN) för språkmodellering med Keras
Övningsinstruktioner
- Importera
Embedding-lagret frånkeras.layers. - Ange vokabulärstorleken plus ett som indatadimension och meningslängden som indatalängd i inbäddningslagret.
- Kompilera modellen.
- Skriv ut sammanfattningen av modellen med inbäddning.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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.____