Porównanie liczby parametrów
Reprezentacja one-hot nie jest dobrym sposobem kodowania słów, ponieważ jest bardzo rzadka. Warstwa Embedding tworzy gęstą reprezentację wektorów, ale wymaga nauczenia się dużej liczby parametrów.
W tym ćwiczeniu porównasz liczbę parametrów dwóch modeli – jednego używającego osadzeń (embeddings), a drugiego kodowania one-hot – aby zobaczyć różnicę.
Model model_onehot jest już załadowany w środowisku, podobnie jak Sequential, Dense i GRU z keras. Załadowane są również parametry vocabulary_size=80000 i sentence_len=200.
To ćwiczenie jest częścią kursu
Rekurencyjne sieci neuronowe (RNN) do modelowania języka w Keras
Instrukcje do ćwiczenia
- Zaimportuj warstwę
Embeddingzkeras.layers. - W warstwie osadzenia użyj rozmiaru słownictwa powiększonego o jeden jako wymiaru wejściowego oraz rozmiaru zdania jako długości wejścia.
- Skompiluj model.
- Wyświetl podsumowanie modelu z osadzeniem.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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.____