Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีใช้ Keras กับ Embedding Layer เพื่อแชร์เลเยอร์ด้วย Python

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 ข้อความ