MulaiMulai sekarang secara gratis

Mendefinisikan model embedding

Anda akan mendefinisikan model Keras yang:

  • Menggunakan layer Embedding
  • Akan dilatih dengan Teacher Forcing

Model ini akan memiliki dua layer embedding: satu layer embedding encoder dan satu layer embedding decoder. Selain itu, karena model dilatih menggunakan Teacher Forcing, model akan menggunakan panjang urutan fr_len-1 pada layer Input decoder.

Untuk latihan ini, semua keras.layers yang diperlukan dan Model sudah diimpor. Selain itu, variabel en_len (panjang urutan bahasa Inggris), fr_len (panjang urutan bahasa Prancis), en_vocab (ukuran kosakata bahasa Inggris), fr_vocab (ukuran kosakata bahasa Prancis), dan hsize (ukuran tersembunyi) telah didefinisikan.

Latihan ini adalah bagian dari kursus

Penerjemahan Mesin dengan Keras

Lihat Kursus

Petunjuk latihan

  • Definisikan layer Input yang menerima urutan ID kata.
  • Definisikan layer Embedding yang melakukan embedding en_vocab kata, memiliki panjang 96, dan dapat menerima urutan ID (panjang urutan ditentukan menggunakan argumen input_length).
  • Definisikan layer Embedding yang melakukan embedding fr_vocab kata, memiliki panjang 96, dan dapat menerima urutan fr_len-1 ID.
  • Definisikan model yang menerima satu masukan dari encoder dan satu masukan dari decoder (dalam urutan tersebut) dan menghasilkan prediksi kata.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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'])
Edit dan Jalankan Kode