Định nghĩa encoder
Ở đây, bạn sẽ thực hiện bước đầu tiên để tạo một mô hình dịch máy: triển khai encoder. Encoder bạn sắp triển khai là một mô hình rất đơn giản so với các mô hình phức tạp được dùng trong ứng dụng thực tế như dịch máy của Google. Nhưng đừng lo, dù mô hình đơn giản, các khái niệm vẫn giống với các mô hình phức tạp đó. Tại đây, chúng ta sẽ dùng tiền tố en (ví dụ: en_gru) cho mọi thứ liên quan đến encoder và de cho những thứ liên quan đến decoder (ví dụ: de_gru).
Bạn sẽ thấy chúng ta chọn en_vocab nhỏ hơn (150) so với giá trị thực tế (228) đã tìm được. Giảm kích thước từ vựng giúp giảm bộ nhớ mà mô hình sử dụng. Giảm nhẹ từ vựng là ổn vì chúng ta loại bỏ các từ hiếm khi làm điều đó. Với bài toán dịch máy, các từ hiếm thường ít giá trị hơn so với các từ phổ biế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 tầng
Inputcho đầu vào có kích thước từ vựngen_vocabvà độ dài chuỗien_len, sử dụng đối sốshape. - Định nghĩa một tầng
keras.layers.GRUvớihsizenút ẩn và trả về trạng thái của nó. - Lấy đầu ra từ tầng GRU bằng cách đưa
en_inputsvào và gán trạng thái GRU choen_statevà đầu ra choen_out. - Định nghĩa một
keras.models.Modelvới đầu vào làen_inputsvà đầu ra làen_state, rồi in tóm tắt mô hình (model summary).
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 tensorflow.keras as keras
en_len = 15
en_vocab = 150
hsize = 48
# Define an input layer
en_inputs = keras.layers.____(____=____)
# Define a GRU layer which returns the state
en_gru = ____(____, ____=____)
# Get the output and state from the GRU
____, ____ = ____(____)
# Define and print the model summary
encoder = ____(inputs=____, ____=____)
print(encoder.____)