Mendefinisikan decoder
Dalam latihan ini, Anda akan mengimplementasikan decoder dan mendefinisikan model ujung-ke-ujung dari masukan encoder hingga keluaran GRU decoder. Decoder menggunakan model yang sama seperti encoder. Namun, terdapat perbedaan pada masukan dan state yang diberikan ke decoder dibandingkan dengan encoder. Misalnya, decoder menggunakan vektor konteks yang dihasilkan encoder sebagai masukan sekaligus sebagai state awal untuk decoder. Ingat bahwa kita akan menggunakan prefiks en (misalnya en_gru) untuk menandai hal yang terkait encoder dan de untuk hal yang terkait decoder (misalnya de_gru).
Untuk mengimplementasikan decoder, Anda akan menggunakan lapisan RepeatVector dan GRU.
Untuk latihan ini, model encoder dan berbagai lapisan encoder yang sudah Anda implementasikan telah disediakan. Sebagai contoh, masukan encoder disediakan sebagai en_inputs dan vektor konteks sebagai en_state. Perhatikan juga bahwa objek GRU dan Model sudah diimpor.
Latihan ini adalah bagian dari kursus
Penerjemahan Mesin dengan Keras
Petunjuk latihan
- Definisikan lapisan
RepeatVectoryang menerimaen_statesebagai masukan dan mengulanginya sebanyakfr_lenkali. - Definisikan lapisan GRU,
decoder_gru, yang memiliki unit tersembunyi sebesarhsizedan mengembalikan semua output yang dihasilkan. - Dapatkan keluaran dari lapisan
decoder_grudengan memberikande_inputssebagai masukan danen_statesebagai state awal decoder. - Definisikan sebuah model yang menerima
en_inputssebagai masukan dangru_outputssebagai keluarannya.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
from tensorflow.keras.layers import RepeatVector
hsize = 48
fr_len = 20
# Define a RepeatVector layer
de_inputs = ____(____)(____)
# Define a GRU model that returns all outputs
decoder_gru = ____(____, ____=____)
# Get the outputs of the decoder
gru_outputs = ____(____, initial_state=____)
# Define a model with the correct inputs and outputs
enc_dec = ____(inputs=____, outputs=____)
enc_dec.summary()