Keras เป็น Deep Learning API ระดับสูง เขียนด้วย Python รันบน TensorFlow พัฒนาจากโครงการ ONEIROS รองรับ Scalable, Cross-platform (TPU, GPU clusters, Web, Mobile) เข้าถึงได้ผ่าน from tensorflow import keras
Functional API และ Shared Layers
Functional API ยืดหยุ่นกว่า Sequential API รองรับ Non-linear topology, Shared layers, Multiple inputs/outputs โมเดลเป็น DAG ของเลเยอร์
ตัวอย่าง: แชร์ Embedding Layer ระหว่าง 2 Inputs
print("Embedding for 2000 unique words mapped to 128-dimensional vectors")
shared_embedding = layers.Embedding(2000, 128)
print("Variable-length integer sequence")
text_input_a = keras.Input(shape=(None,), dtype="int32")
print("Variable-length integer sequence")
text_input_b = keras.Input(shape=(None,), dtype="int32")
print("Reuse the same layers to encode both the inputs")
encoded_input_a = shared_embedding(text_input_a)
encoded_input_b = shared_embedding(text_input_b)
Code credit: TensorFlow Keras Functional Guide
ผลลัพธ์
Embedding for 2000 unique words mapped to 128-dimensional vectors Variable-length integer sequence Variable-length integer sequence Reuse the same layers to encode both the inputs
คำอธิบาย
- Functional API ใช้ Shared Layers (อินสแตนซ์เดียวกัน ใช้หลายครั้งในโมเดลเดียวกัน)
- เลเยอร์เหล่านี้เรียนรู้ Features ที่ตรงกับหลาย Path ในกราฟ
- ใช้แชร์เลเยอร์เพื่อ Encode Input จากส่วนต่างๆ ของข้อความที่มี Vocabulary คล้ายกัน
- ทำให้ข้อมูลแบ่งปันระหว่าง Inputs ต่างๆ ได้
- ช่วยให้โมเดลเทรนด้วยข้อมูลน้อยลงได้
- ในตัวอย่าง Embedding layer ถูกแชร์ระหว่าง 2 ข้อความ