MulaiMulai sekarang secara gratis

Mendefinisikan decoder untuk model inferensi

Model inferensi adalah model yang akan digunakan di lingkungan produksi untuk melakukan penerjemahan ketika diminta oleh pengguna. Pada latihan ini, Anda perlu mengimplementasikan decoder dari model inferensi.

Decoder model inferensi berbeda dengan decoder pada model pelatihan. Kita tidak dapat memberi makan decoder dengan kata-kata bahasa Prancis karena itulah yang ingin kita prediksi. Untungnya, ada solusinya. Kita dapat menggunakan kata bahasa Prancis yang diprediksi pada langkah waktu sebelumnya untuk memberi masukan ke decoder model inferensi. Oleh karena itu, ketika Anda ingin menghasilkan terjemahan, decoder perlu menghasilkan satu kata setiap kali, sambil menggunakan keluaran sebelumnya sebagai masukan.

Untuk latihan ini, variabel hsize (ukuran tersembunyi dari lapisan GRU), fr_len, dan fr_vocab telah diimpor. Ingat bahwa prefiks de digunakan untuk merujuk pada decoder.

Latihan ini adalah bagian dari kursus

Penerjemahan Mesin dengan Keras

Lihat Kursus

Petunjuk latihan

  • Definisikan sebuah lapisan Input yang menerima satu batch deret kata bahasa Prancis yang di-onehot (panjang urutan 1).
  • Definisikan lapisan Input lain yang menerima satu batch state berukuran hsize, yang akan Anda gunakan untuk memasukkan state sebelumnya ke decoder.
  • Dapatkan output dan state dari GRU decoder.
  • Definisikan sebuah model yang menerima Input kata bahasa Prancis dan Input state sebelumnya serta menghasilkan prediksi akhir dan state GRU yang baru.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

import tensorflow.keras.layers as layers
from tensorflow.keras.models import Model
# Define an input layer that accepts a single onehot encoded word
de_inputs = layers.____(shape=(____, ____))
# Define an input to accept the t-1 state
de_state_in = layers.____(shape=(____,))
de_gru = layers.GRU(hsize, return_state=True)
# Get the output and state from the GRU layer
de_out, de_state_out = ____(de_inputs, initial_state=____)
de_dense = layers.Dense(fr_vocab, activation='softmax')
de_pred = de_dense(de_out)

# Define a model
decoder = Model(inputs=[____, ____], outputs=[____, ____])
print(decoder.summary())
Edit dan Jalankan Kode