MulaiMulai sekarang secara gratis

Mendefinisikan layer model Teacher Forcing

Anda akan mendefinisikan versi baru yang telah ditingkatkan dari model penerjemahan mesin yang sebelumnya Anda buat. Tahukah Anda bahwa model seperti Google Machine Translator menggunakan teknik Teacher Forcing untuk melatih model mereka?

Seperti yang sudah Anda lihat, model sebelumnya perlu sedikit diubah agar dapat menggunakan Teacher Forcing. Pada latihan ini, Anda akan melakukan perubahan yang diperlukan pada model tersebut. Parameter bahasa en_len dan fr_len (panjang kalimat Inggris/Prancis yang sudah dipadatkan/padded), en_vocab dan fr_vocab (ukuran kosakata himpunan data Inggris/Prancis), serta hsize (ukuran layer tersembunyi untuk layer GRU) telah disediakan. Ingat bahwa decoder akan menerima urutan bahasa Prancis dengan satu item lebih sedikit dari fr_len. Ingat juga bahwa kita menggunakan awalan en untuk hal yang terkait encoder dan de untuk hal yang terkait decoder.

Latihan ini adalah bagian dari kursus

Penerjemahan Mesin dengan Keras

Lihat Kursus

Petunjuk latihan

  • Impor submodul layers dari tensorflow.keras.
  • Dapatkan keluaran dan nilai state encoder lalu tetapkan masing-masing ke en_out dan en_state.
  • Definisikan layer Input untuk decoder yang menerima urutan sepanjang fr_len-1 berupa kata-kata bahasa Prancis yang one-hot encoded.
  • Definisikan layer Dense softmax TimeDistributed dengan fr_vocab node.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Import the layers submodule from keras
import ____.____.____ as layers

en_inputs = layers.Input(shape=(en_len, en_vocab))
en_gru = layers.GRU(hsize, return_state=True)
# Get the encoder output and state
____, ____ = en_gru(____)

# Define the decoder input layer
de_inputs = layers.____(shape=(____, ____))
de_gru = layers.GRU(hsize, return_sequences=True)
de_out = de_gru(de_inputs, initial_state=en_state)
# Define a TimeDistributed Dense softmax layer with fr_vocab nodes
de_dense = layers.____(____.____(____, activation=____))
de_pred = de_dense(de_out)
Edit dan Jalankan Kode