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

การกำหนดโมเดล Embedding

ในแบบฝึกหัดนี้ คุณจะกำหนดโมเดล Keras ที่:

  • ใช้เลเยอร์ Embedding
  • ฝึกด้วย Teacher Forcing

โมเดลนี้จะมีเลเยอร์ embedding สองชั้น ได้แก่ เลเยอร์ embedding ของ encoder และของ decoder นอกจากนี้ เนื่องจากโมเดลใช้ Teacher Forcing ในการฝึก เลเยอร์ Input ของ decoder จึงใช้ความยาวลำดับเป็น fr_len-1

สำหรับแบบฝึกหัดนี้ ได้นำเข้า keras.layers และ Model ที่จำเป็นทั้งหมดไว้แล้ว รวมถึงตัวแปร en_len (ความยาวลำดับภาษาอังกฤษ), fr_len (ความยาวลำดับภาษาฝรั่งเศส), en_vocab (ขนาดคำศัพท์ภาษาอังกฤษ), fr_vocab (ขนาดคำศัพท์ภาษาฝรั่งเศส) และ hsize (ขนาด hidden state) ก็ถูกกำหนดไว้แล้วเช่นกัน

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

Machine Translation ด้วย Keras

ดูคอร์ส

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

  • กำหนดเลเยอร์ Input ที่รับลำดับของ word ID
  • กำหนดเลเยอร์ Embedding สำหรับแปลงคำใน en_vocab โดยมีความยาว 96 และรับลำดับของ ID ได้ (กำหนดความยาวลำดับผ่านอาร์กิวเมนต์ input_length)
  • กำหนดเลเยอร์ Embedding สำหรับแปลงคำใน fr_vocab โดยมีความยาว 96 และรับลำดับของ ID จำนวน fr_len-1 ได้
  • กำหนดโมเดลที่รับอินพุตจาก encoder และอินพุตจาก decoder (ตามลำดับนั้น) และส่งออกการทำนายคำ

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

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

# Define an input layer which accepts a sequence of word IDs
en_inputs = Input(____=(____,))
# Define an Embedding layer which accepts en_inputs
en_emb = ____(____, ____, input_length=____)(en_inputs)
en_out, en_state = GRU(hsize, return_state=True)(en_emb)

de_inputs = Input(shape=(fr_len-1,))
# Define an Embedding layer which accepts de_inputs
de_emb = Embedding(____, 96, input_length=____)(____)
de_out, _ = GRU(hsize, return_sequences=True, return_state=True)(de_emb, initial_state=en_state)
de_pred = TimeDistributed(Dense(fr_vocab, activation='softmax'))(de_out)

# Define the Model which accepts encoder/decoder inputs and outputs predictions 
nmt_emb = Model([____, ____], ____)
nmt_emb.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['acc'])
แก้ไขและรันโค้ด