Bắt đầu ngayBắt đầu miễn phí

Đị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.layersModel đượ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

Xem khóa học

Hướng dẫn bài tập

  • Định nghĩa một tầng Input nhận một chuỗi các ID từ.
  • Định nghĩa một tầng Embedding nhúng en_vocab từ, 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 Embedding nhúng fr_vocab từ, có chiều dài 96 và có thể nhận một chuỗi gồm fr_len-1 ID.
  • Đị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'])
Chỉnh sửa và Chạy Mã