Định nghĩa decoder
Trong bài tập này, bạn sẽ hiện thực decoder và định nghĩa một mô hình end-to-end đi từ đầu vào của encoder đến các đầu ra GRU của decoder. Decoder sử dụng cùng mô hình như encoder. Tuy nhiên, đầu vào và trạng thái đưa vào decoder khác với encoder. Ví dụ, decoder nhận vector ngữ cảnh do encoder tạo ra làm đầu vào đồng thời làm trạng thái khởi tạo cho decoder. Hãy nhớ rằng chúng ta sẽ dùng tiền tố en (ví dụ en_gru) để chỉ các thành phần thuộc encoder và de để chỉ các thành phần thuộc decoder (ví dụ de_gru).
Để hiện thực decoder, bạn sẽ dùng các lớp RepeatVector và GRU.
Trong bài tập này, bạn đã được cung cấp mô hình encoder và các lớp khác nhau của encoder mà bạn đã triển khai. Chẳng hạn, đầu vào của encoder được cung cấp là en_inputs và vector ngữ cảnh là en_state. Cũng lưu ý rằng các đối tượng GRU và Model đã được import sẵn.
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
- Định nghĩa một lớp
RepeatVectornhậnen_statelàm đầu vào và lặp lại nófr_lenlần. - Định nghĩa một lớp GRU,
decoder_gru, có số đơn vị ẩn bằnghsizevà trả về tất cả các đầu ra tạo ra. - Lấy đầu ra của lớp
decoder_grubằng cách đưade_inputslàm đầu vào vàen_statelàm trạng thái khởi tạo của decoder. - Định nghĩa một mô hình nhận
en_inputslàm đầu vào vàgru_outputslàm đầu ra.
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.
from tensorflow.keras.layers import RepeatVector
hsize = 48
fr_len = 20
# Define a RepeatVector layer
de_inputs = ____(____)(____)
# Define a GRU model that returns all outputs
decoder_gru = ____(____, ____=____)
# Get the outputs of the decoder
gru_outputs = ____(____, initial_state=____)
# Define a model with the correct inputs and outputs
enc_dec = ____(inputs=____, outputs=____)
enc_dec.summary()