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
Petunjuk latihan
- Impor submodul
layersdaritensorflow.keras. - Dapatkan keluaran dan nilai state encoder lalu tetapkan masing-masing ke
en_outdanen_state. - Definisikan layer
Inputuntuk decoder yang menerima urutan sepanjangfr_len-1berupa kata-kata bahasa Prancis yang one-hot encoded. - Definisikan layer
DensesoftmaxTimeDistributeddenganfr_vocabnode.
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)