So sánh số lượng tham số
Bạn đã thấy biểu diễn one-hot không phải là cách tốt để biểu diễn từ vì nó rất thưa (sparse). Dùng lớp Embedding sẽ tạo ra các vector đặc (dense), nhưng cũng đòi hỏi phải học rất nhiều tham số.
Trong bài tập này, bạn sẽ so sánh số lượng tham số của hai mô hình sử dụng embeddings và mã hóa one-hot để thấy sự khác biệt.
Mô hình model_onehot đã được nạp sẵn trong môi trường, cũng như Sequential, Dense và GRU từ keras. Cuối cùng, các tham số vocabulary_size=80000 và sentence_len=200 cũng đã được nạp.
Bài tập này là một phần của khóa học
Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras
Hướng dẫn bài tập
- Import lớp
Embeddingtừkeras.layers. - Ở lớp embedding, dùng kích thước từ vựng cộng một làm input dimension và độ dài câu làm input length.
- Biên dịch (compile) mô hình.
- In phần tóm tắt (summary) của mô hình có embedding.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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.____