Định nghĩa mô hình embedding
Bạn sẽ định nghĩa một mô hình Keras:
- Sử dụng các tầng
Embedding - Được huấn luyện với Teacher Forcing
Mô hình này sẽ có hai tầng embedding: một tầng embedding cho encoder và một tầng embedding cho decoder. Ngoài ra, vì mô hình được huấn luyện bằng Teacher Forcing, nó sẽ dùng độ dài chuỗi là fr_len-1 ở tầng Input của decoder.
Trong bài này, bạn đã có sẵn tất cả keras.layers và Model được import. Bên cạnh đó, các biến en_len (độ dài chuỗi tiếng Anh), fr_len (độ dài chuỗi tiếng Pháp), en_vocab (kích thước từ vựng tiếng Anh), fr_vocab (kích thước từ vựng tiếng Pháp) và hsize (kích thước ẩn) đã được định nghĩa.
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
Inputnhận một chuỗi các ID từ. - Định nghĩa một tầng
Embeddingnhúngen_vocabtừ, có chiều dài 96 và có thể nhận một chuỗi các ID (độ dài chuỗi được chỉ định bằng tham sốinput_length). - Định nghĩa một tầng
Embeddingnhúngfr_vocabtừ, có chiều dài 96 và có thể nhận một chuỗi gồmfr_len-1ID. - Định nghĩa một mô hình nhận một đầu vào từ encoder và một đầu vào từ decoder (theo thứ tự đó) và xuất ra các dự đoán 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.
# Define an input layer which accepts a sequence of word IDs
en_inputs = Input(____=(____,))
# Define an Embedding layer which accepts en_inputs
en_emb = ____(____, ____, input_length=____)(en_inputs)
en_out, en_state = GRU(hsize, return_state=True)(en_emb)
de_inputs = Input(shape=(fr_len-1,))
# Define an Embedding layer which accepts de_inputs
de_emb = Embedding(____, 96, input_length=____)(____)
de_out, _ = GRU(hsize, return_sequences=True, return_state=True)(de_emb, initial_state=en_state)
de_pred = TimeDistributed(Dense(fr_vocab, activation='softmax'))(de_out)
# Define the Model which accepts encoder/decoder inputs and outputs predictions
nmt_emb = Model([____, ____], ____)
nmt_emb.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['acc'])