Transfer learning
Bạn đã thấy rằng khi huấn luyện một lớp embedding, bạn cần học rất nhiều tham số.
Trong bài này, bạn sẽ thấy rằng khi dùng transfer learning, bạn có thể sử dụng các trọng số đã được huấn luyện sẵn và không cập nhật chúng, nghĩa là tất cả tham số của lớp embedding sẽ được cố định, và mô hình chỉ cần học các tham số từ những lớp còn lại.
Hàm load_glove đã được nạp trong môi trường và trả về ma trận GloVe dưới dạng một vector numpy.ndarray. Hàm này sử dụng phương pháp đã trình bày trong các slide của bài học để lấy các vector GloVe với 200 chiều embedding cho bộ từ vựng dùng trong bài tập này.
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
- Dùng hàm đã định nghĩa sẵn để tải các vector GloVe.
- Dùng trình khởi tạo
Constantvới các vector đã huấn luyện sẵn. - Thêm tầng đầu ra là
Densevới một unit. - In summary và kiểm tra các tham số có thể huấn luyện (trainable).
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.
# Load the glove pre-trained vectors
glove_matrix = ____('glove_200d.zip')
# Create a model with embeddings
model = Sequential(name="emb_model")
model.add(Embedding(input_dim=vocabulary_size + 1, output_dim=wordvec_dim,
embeddings_initializer=____(glove_matrix),
input_length=sentence_len, trainable=False))
model.add(GRU(128))
model.add(____)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Print the summaries of the model with embeddings
model.____