Porovnání počtu parametrů
Viděl/a jsi, že one-hot reprezentace není vhodným způsobem reprezentace slov, protože je velmi řídká. Vrstva Embedding vytváří hustou reprezentaci vektorů, ale zároveň vyžaduje naučení velkého množství parametrů.
V tomto cvičení porovnáš počet parametrů dvou modelů – jednoho používajícího embeddings a druhého používajícího one-hot kódování – a uvidíš, jaký je mezi nimi rozdíl.
Model model_onehot je již načtený v prostředí, stejně jako Sequential, Dense a GRU z keras. Dále jsou načteny i parametry vocabulary_size=80000 a sentence_len=200.
Toto cvičení je součástí kurzu
Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras
Pokyny k cvičení
- Importuj vrstvu
Embeddingzkeras.layers. - Pro embedding vrstvu použij jako vstupní dimenzi velikost slovníku plus jedničku a jako vstupní délku délku věty.
- Sestav model.
- Vypiš přehled modelu s embedding vrstvou.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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.____