Định nghĩa các lớp của mô hình Teacher Forcing
Bạn sẽ định nghĩa một phiên bản mới và cải tiến của mô hình dịch máy mà bạn đã xây dựng trước đó. Bạn có biết các mô hình như Google Machine Translator đã dùng kỹ thuật Teacher Forcing để huấn luyện mô hình của họ không?
Như bạn đã thấy, mô hình trước cần điều chỉnh một chút để áp dụng Teacher Forcing. Trong bài này, bạn sẽ thực hiện các thay đổi cần thiết cho mô hình trước. Bạn đã được cung cấp các tham số ngôn ngữ en_len và fr_len (độ dài câu tiếng Anh/Pháp sau khi padding), en_vocab và fr_vocab (kích thước từ vựng của tập dữ liệu tiếng Anh/Pháp) và hsize (kích thước tầng ẩn của các lớp GRU). Lưu ý rằng decoder sẽ nhận một chuỗi tiếng Pháp có số phần tử ít hơn fr_len một đơn vị. Nhớ rằng chúng ta dùng tiền tố en cho những thành phần thuộc encoder và de cho những thành phần thuộc decoder.
Bài tập này là một phần của khóa học
Machine Translation với Keras
Hướng dẫn bài tập
- Import tiểu mô-đun
layerstừtensorflow.keras. - Lấy đầu ra và trạng thái của encoder và gán lần lượt cho
en_outvàen_state. - Định nghĩa một lớp
Inputcho decoder, nhận một chuỗi dàifr_len-1gồm các từ tiếng Pháp được mã hóa one-hot. - Định nghĩa một lớp
TimeDistributedDensevới softmax vàfr_vocabnút.
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 layers submodule from keras
import ____.____.____ as layers
en_inputs = layers.Input(shape=(en_len, en_vocab))
en_gru = layers.GRU(hsize, return_state=True)
# Get the encoder output and state
____, ____ = en_gru(____)
# Define the decoder input layer
de_inputs = layers.____(shape=(____, ____))
de_gru = layers.GRU(hsize, return_sequences=True)
de_out = de_gru(de_inputs, initial_state=en_state)
# Define a TimeDistributed Dense softmax layer with fr_vocab nodes
de_dense = layers.____(____.____(____, activation=____))
de_pred = de_dense(de_out)