เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การกำหนด decoder ของโมเดล inference

โมเดล inference คือโมเดลที่จะนำไปใช้จริงเพื่อแปลภาษาตามที่ผู้ใช้ต้องการ ในแบบฝึกหัดนี้ คุณจะต้องสร้าง decoder ของโมเดล inference

Decoder ของโมเดล inference แตกต่างจาก decoder ของโมเดลสำหรับการฝึก เนื่องจากเราไม่สามารถป้อนคำภาษาฝรั่งเศสให้กับ decoder ได้โดยตรง เพราะนั่นคือสิ่งที่เราต้องการให้โมเดลทำนาย โชคดีที่มีวิธีแก้ไข นั่นคือการนำคำภาษาฝรั่งเศสที่โมเดลทำนายได้จาก time step ก่อนหน้ามาป้อนเข้า decoder ของโมเดล inference ดังนั้น เมื่อต้องการสร้างคำแปล decoder จะต้องสร้างคำทีละคำ โดยใช้ผลลัพธ์จาก time step ก่อนหน้าเป็น input

สำหรับแบบฝึกหัดนี้ ตัวแปร hsize (hidden size ของ layer GRU), fr_len และ fr_vocab ได้ถูก import ไว้แล้ว และจำไว้ว่า prefix de ใช้สำหรับอ้างอิงถึง decoder

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Machine Translation ด้วย Keras

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนด Input layer สำหรับรับชุดลำดับคำภาษาฝรั่งเศสในรูปแบบ onehot encoded (ความยาวลำดับเท่ากับ 1)
  • กำหนด Input layer อีกตัวสำหรับรับ state ขนาด hsize ซึ่งจะใช้ป้อน state จาก time step ก่อนหน้าให้กับ decoder
  • ดึง output และ state จาก decoder GRU
  • กำหนดโมเดลที่รับ Input ของคำภาษาฝรั่งเศสและ Input ของ state ก่อนหน้า แล้ว output ผลการทำนายสุดท้ายและ state ใหม่ของ GRU

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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())
แก้ไขและรันโค้ด