สร้างโมเดล LSTM
เตรียมลำดับข้อความไว้พร้อมแล้ว ถึงเวลาสร้างโมเดล LSTM กันแล้ว!
จำไว้ว่าแต่ละลำดับมี 4 คำ โมเดลจะถูกฝึกด้วย 3 คำแรกของแต่ละลำดับ และทำนายคำที่ 4 เราจะใช้ Embedding layer ซึ่งจะเรียนรู้การแปลงคำให้เป็นเวกเตอร์ที่มีความหมาย จากนั้นเวกเตอร์เหล่านี้จะถูกส่งต่อไปยัง LSTM layer ส่วน output คือ Dense layer ที่มีจำนวน neuron เท่ากับจำนวนคำในคลังคำศัพท์ พร้อม softmax activation เพราะเราต้องการให้โมเดลเลือกคำถัดไปที่มีความน่าจะเป็นสูงที่สุดจากคำทั้งหมดที่เป็นไปได้
ขนาดของคลังคำศัพท์ (จำนวนคำที่ไม่ซ้ำกัน) ถูกเก็บไว้ในตัวแปร vocab_size
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning เบื้องต้นด้วย Keras
คำแนะนำการฝึกหัด
- Import
Embedding,LSTMและDenselayer จากtensorflow.keraslayers - เพิ่ม
Embedding()layer ที่รับขนาดคลังคำศัพท์ โดยแปลงคำเป็นเวกเตอร์ขนาด 8 และรับลำดับที่มีความยาว 3 - เพิ่ม
LSTM()layer ขนาด 32 neurons - เพิ่ม
Dense()layer แบบ hidden ขนาด 32 neurons และ output layer ขนาดvocab_sizeneurons พร้อมsoftmax
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the Embedding, LSTM and Dense layer
from tensorflow.keras.____ import ____, ____, ____
model = Sequential()
# Add an Embedding layer with the right parameters
model.add(____(input_dim = ____, input_length = ____, output_dim = ____, ))
# Add a 32 unit LSTM layer
model.add(____(____))
# Add a hidden Dense layer of 32 units and an output layer of vocab_size with softmax
model.add(Dense(____, activation='relu'))
model.add(Dense(____, activation=____))
model.summary()