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

Keras สามารถใช้กับเลเยอร์การฝังเพื่อแชร์เลเยอร์โดยใช้ Python ได้อย่างไร


Keras ได้รับการพัฒนาโดยเป็นส่วนหนึ่งของการวิจัยสำหรับโครงการ ONEIROS (ระบบปฏิบัติการหุ่นยนต์อัจฉริยะ Neuro-Electronic ปลายเปิด) Keras เป็น API การเรียนรู้เชิงลึกซึ่งเขียนด้วยภาษา Python เป็น API ระดับสูงที่มีอินเทอร์เฟซที่มีประสิทธิภาพซึ่งช่วยแก้ปัญหาการเรียนรู้ของเครื่อง มันทำงานบนเฟรมเวิร์ก Tensorflow มันถูกสร้างขึ้นเพื่อช่วยทดลองในลักษณะที่รวดเร็ว โดยนำเสนอสิ่งที่เป็นนามธรรมและการสร้างบล็อคที่จำเป็นต่อการพัฒนาและการห่อหุ้มโซลูชันแมชชีนเลิร์นนิง

สามารถปรับขนาดได้สูงและมาพร้อมกับความสามารถข้ามแพลตฟอร์ม ซึ่งหมายความว่า Keras จะทำงานบน TPU หรือคลัสเตอร์ของ GPU ได้ นอกจากนี้ โมเดล Keras ยังสามารถส่งออกไปยังเว็บเบราว์เซอร์หรือโทรศัพท์มือถือได้อีกด้วย

Keras มีอยู่แล้วในแพ็คเกจ Tensorflow สามารถเข้าถึงได้โดยใช้รหัสบรรทัดด้านล่าง -

import tensorflow
from tensorflow import keras

Keras functional API ช่วยสร้างโมเดลที่มีความยืดหยุ่นมากกว่าเมื่อเปรียบเทียบกับโมเดลที่สร้างโดยใช้ Sequential API API ที่ใช้งานได้สามารถทำงานกับโมเดลที่มีโทโพโลยีที่ไม่ใช่เชิงเส้น สามารถแชร์เลเยอร์และทำงานกับอินพุตและเอาต์พุตได้หลายรายการ โมเดลการเรียนรู้เชิงลึกมักจะเป็นกราฟ acyclic แบบกำกับทิศทาง (DAG) ที่มีหลายเลเยอร์ API การทำงานช่วยสร้างกราฟของเลเยอร์

เรากำลังใช้ Google Colaboratory เพื่อเรียกใช้โค้ดด้านล่าง Google Colab หรือ Colaboratory ช่วยเรียกใช้โค้ด Python บนเบราว์เซอร์และไม่ต้องมีการกำหนดค่าใดๆ และเข้าถึง GPU ได้ฟรี (หน่วยประมวลผลกราฟิก) Colaboratory ถูกสร้างขึ้นบน Jupyter Notebook ต่อไปนี้เป็นข้อมูลโค้ดเพื่อใช้ Keras ที่ใช้กับเลเยอร์การฝังเพื่อแชร์เลเยอร์โดยใช้ Python -

ตัวอย่าง

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)

เครดิตโค้ด – https://www.tensorflow.org/guide/keras/functional

ผลลัพธ์

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

คำอธิบาย

  • โมเดล API การทำงานใช้เลเยอร์ที่ใช้ร่วมกัน

  • เลเยอร์ที่ใช้ร่วมกันเหล่านี้เป็นอินสแตนซ์ที่สามารถนำมาใช้ซ้ำได้หลายครั้งในโมเดลเดียวกัน

  • เลเยอร์เหล่านี้เรียนรู้คุณลักษณะที่สอดคล้องกับหลายเส้นทางในกราฟ

  • เลเยอร์ที่ใช้ร่วมกันยังใช้เพื่อเข้ารหัสอินพุตจากส่วนต่าง ๆ ของข้อความที่มีคำศัพท์เหมือนกันสองส่วน

  • วิธีนี้ทำให้สามารถแชร์ข้อมูลระหว่างอินพุตต่างๆ ได้

  • ด้วยเหตุนี้ โมเดลจึงสามารถฝึกโดยใช้ข้อมูลน้อยลง

  • เลเยอร์ "การฝัง" จะใช้ร่วมกันในข้อความสองข้อความที่แตกต่างกันในโค้ดด้านบน