Mendefinisikan encoder
Di sini Anda akan mengambil langkah pertama menuju pembuatan model terjemahan mesin: mengimplementasikan encoder. Encoder yang akan Anda implementasikan adalah model yang sangat sederhana dibandingkan dengan model kompleks yang digunakan pada aplikasi dunia nyata seperti layanan terjemahan mesin Google. Namun jangan khawatir, meskipun modelnya sederhana, konsepnya sama seperti pada model-model kompleks tersebut. Di sini kita akan menggunakan awalan en (misalnya en_gru) untuk menandai apa pun yang terkait dengan encoder dan de untuk menandai hal-hal yang terkait dengan decoder (misalnya de_gru).
Anda akan melihat bahwa kita memilih en_vocab lebih kecil (150) daripada nilai sebenarnya (228) yang kita temukan. Membuat kosakata lebih kecil mengurangi jejak memori model. Sedikit mengurangi kosakata tidak masalah karena kita menghapus kata-kata yang paling jarang saat melakukannya. Untuk tugas terjemahan mesin, kata-kata yang jarang biasanya kurang bernilai dibandingkan kata-kata yang umum.
Latihan ini adalah bagian dari kursus
Penerjemahan Mesin dengan Keras
Petunjuk latihan
- Definisikan layer
Inputuntuk masukan yang memiliki ukuran kosakataen_vocabdan panjang sekuensen_len, menggunakan argumenshape. - Definisikan layer
keras.layers.GRUyang memiliki unit tersembunyihsizedan mengembalikan state-nya. - Peroleh keluaran dari layer GRU dengan memasukkan
en_inputsdan tetapkan state GRU keen_stateserta keluarannya keen_out. - Definisikan
keras.models.Modeldengan masukanen_inputsdan keluaranen_state, lalu cetak ringkasan model (model summary).
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
import tensorflow.keras as keras
en_len = 15
en_vocab = 150
hsize = 48
# Define an input layer
en_inputs = keras.layers.____(____=____)
# Define a GRU layer which returns the state
en_gru = ____(____, ____=____)
# Get the output and state from the GRU
____, ____ = ____(____)
# Define and print the model summary
encoder = ____(inputs=____, ____=____)
print(encoder.____)