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

การซ้อนเลเยอร์ RNN

โมเดล RNN เชิงลึกอาจมีหลายสิบถึงหลายร้อยเลเยอร์ เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด

ในแบบฝึกหัดนี้ จะได้ลองสร้างโมเดล RNN เชิงลึกโดยซ้อนเลเยอร์ของเซลล์ LSTM ต่อกันทีละชั้น

โดยกำหนดอาร์กิวเมนต์ return_sequences เป็น True ในสองเลเยอร์แรก และเป็น False ในเลเยอร์ LSTM สุดท้าย

หากต้องการสร้างโมเดลที่มีเลเยอร์มากขึ้น สามารถเพิ่มเลเยอร์ต่อกันไปเรื่อย ๆ หรือสร้างฟังก์ชันที่ใช้เมธอด .add() ภายใน loop เพื่อเพิ่มหลายเลเยอร์ด้วยโค้ดเพียงไม่กี่บรรทัด

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

Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

ดูคอร์ส

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

  • นำเข้าเลเยอร์ LSTM
  • กำหนดให้คืนค่า sequence ในสองเลเยอร์แรก และไม่คืนค่า sequence ในเลเยอร์ LSTM สุดท้าย
  • โหลดน้ำหนักที่ฝึกไว้ล่วงหน้า
  • แสดงค่า loss และ accuracy ที่ได้

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

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

# Import the LSTM layer
from tensorflow.keras.layers import ____

# Build model
model = Sequential()
model.add(LSTM(units=128, input_shape=(None, 1), return_sequences=____))
model.add(LSTM(units=128, return_sequences=____))
model.add(LSTM(units=128, return_sequences=____))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Load pre-trained weights
model.____('lstm_stack_model_weights.h5')

____("Loss: %0.04f\nAccuracy: %0.04f" % tuple(model.evaluate(X_test, y_test, verbose=0)))
แก้ไขและรันโค้ด