Keras: API ระดับสูงสำหรับ TensorFlow

Keras เป็น API ระดับสูงของแพลตฟอร์ม TensorFlow โดยมอบอินเทอร์เฟซที่เข้าถึงได้และมีประสิทธิภาพสูงสำหรับการแก้ปัญหาการเรียนรู้ของเครื่อง (ML) โดยมุ่งเน้นไปที่การเรียนรู้เชิงลึกสมัยใหม่ Keras ครอบคลุมทุกขั้นตอนของเวิร์กโฟลว์แมชชีนเลิร์นนิง ตั้งแต่การประมวลผลข้อมูล การปรับแต่งไฮเปอร์พารามิเตอร์ ไปจนถึงการปรับใช้งาน ได้รับการพัฒนาโดยมุ่งเน้นที่การเปิดใช้งานการทดลองที่รวดเร็ว

ด้วย Keras คุณจะสามารถเข้าถึงความสามารถในการปรับขนาดและความสามารถข้ามแพลตฟอร์มของ TensorFlow ได้อย่างเต็มที่ คุณสามารถเรียกใช้ Keras บน TPU Pod หรือกลุ่ม GPU ขนาดใหญ่ได้ และคุณสามารถส่งออกโมเดล Keras เพื่อทำงานในเบราว์เซอร์หรือบนอุปกรณ์เคลื่อนที่ได้ คุณยังสามารถให้บริการโมเดล Keras ผ่านทางเว็บ API ได้อีกด้วย

Keras ได้รับการออกแบบมาเพื่อลดภาระการรับรู้โดยบรรลุเป้าหมายต่อไปนี้:

  • นำเสนออินเทอร์เฟซที่เรียบง่ายและสม่ำเสมอ
  • ลดจำนวนการดำเนินการที่จำเป็นสำหรับกรณีการใช้งานทั่วไปให้เหลือน้อยที่สุด
  • ระบุข้อความแสดงข้อผิดพลาดที่ชัดเจนและดำเนินการได้
  • ปฏิบัติตามหลักการของการเปิดเผยความซับซ้อนอย่างต่อเนื่อง: เริ่มต้นได้ง่าย และคุณสามารถดำเนินการเวิร์กโฟลว์ขั้นสูงให้เสร็จสิ้นได้โดยการเรียนรู้ไปพร้อมกัน
  • ช่วยให้คุณเขียนโค้ดที่กระชับและอ่านง่าย

ใครควรใช้ Keras

คำตอบสั้นๆ ก็คือผู้ใช้ TensorFlow ทุกคนควรใช้ Keras API เป็นค่าเริ่มต้น ไม่ว่าคุณจะเป็นวิศวกร นักวิจัย หรือผู้ปฏิบัติงานด้าน ML คุณควรเริ่มต้นด้วย Keras

มีกรณีการใช้งานบางกรณี (เช่น การสร้างเครื่องมือบน TensorFlow หรือการพัฒนาแพลตฟอร์มประสิทธิภาพสูงของคุณเอง) ที่ต้องใช้ TensorFlow Core API ระดับต่ำ แต่หากกรณีการใช้งานของคุณไม่อยู่ใน แอปพลิเคชัน Core API ตัวใดตัวหนึ่ง คุณควรเลือกใช้ Keras

ส่วนประกอบ Keras API

โครงสร้างข้อมูลหลักของ Keras คือ เลเยอร์ และ โมเดล เลเยอร์คือการแปลงอินพุต/เอาท์พุตอย่างง่าย และแบบจำลองคือกราฟอะไซคลิกแบบกำหนดทิศทาง (DAG) ของเลเยอร์

เลเยอร์

คลาส tf.keras.layers.Layer เป็นนามธรรมพื้นฐานใน Keras Layer สรุปสถานะ (น้ำหนัก) และการคำนวณบางอย่าง (กำหนดไว้ในวิธี tf.keras.layers.Layer.call )

ตุ้มน้ำหนักที่สร้างโดยเลเยอร์สามารถฝึกได้หรือฝึกไม่ได้ เลเยอร์สามารถเขียนแบบวนซ้ำได้: หากคุณกำหนดอินสแตนซ์ของเลเยอร์เป็นแอตทริบิวต์ของเลเยอร์อื่น เลเยอร์ด้านนอกจะเริ่มติดตามน้ำหนักที่สร้างโดยเลเยอร์ใน

คุณยังสามารถใช้เลเยอร์เพื่อจัดการงานการประมวลผลข้อมูลล่วงหน้า เช่น การทำให้เป็นมาตรฐานและการสร้างเวกเตอร์ข้อความ เลเยอร์การประมวลผลล่วงหน้าสามารถรวมไว้ในโมเดลได้โดยตรง ทั้งในระหว่างหรือหลังการฝึก ซึ่งทำให้โมเดลสามารถพกพาได้

โมเดล

โมเดลคือออบเจ็กต์ที่จัดกลุ่มเลเยอร์ไว้ด้วยกันและสามารถฝึกกับข้อมูลได้

ประเภทที่ง่ายที่สุดของโมเดลคือ Sequential model ซึ่งเป็นสแต็กเชิงเส้นของเลเยอร์ สำหรับสถาปัตยกรรมที่ซับซ้อนมากขึ้น คุณสามารถใช้ Keras Functional API ซึ่งช่วยให้คุณสร้างกราฟของเลเยอร์ต่างๆ ได้ตามใจชอบ หรือ ใช้คลาสย่อยเพื่อเขียนโมเดลตั้งแต่เริ่มต้น

คลาส tf.keras.Model มีวิธีการฝึกอบรมและการประเมินผลในตัว:

  • tf.keras.Model.fit : ฝึกโมเดลตามจำนวนยุคที่กำหนด
  • tf.keras.Model.predict : สร้างการคาดการณ์เอาต์พุตสำหรับตัวอย่างอินพุต
  • tf.keras.Model.evaluate : ส่งคืนค่าการสูญเสียและค่าเมตริกสำหรับโมเดล กำหนดค่าผ่านวิธี tf.keras.Model.compile

วิธีการเหล่านี้ช่วยให้คุณเข้าถึงคุณสมบัติการฝึกอบรมในตัวต่อไปนี้:

  • โทรกลับ คุณสามารถใช้ประโยชน์จากการเรียกกลับในตัวสำหรับการหยุดก่อนกำหนด จุดตรวจสอบโมเดล และการตรวจสอบ TensorBoard คุณยังสามารถ ใช้การโทรกลับที่กำหนดเองได้
  • การฝึกอบรมแบบกระจาย คุณสามารถขยายการฝึกอบรมของคุณเป็น GPU, TPU หรืออุปกรณ์หลายเครื่องได้อย่างง่ายดาย
  • ขั้นตอนการหลอมรวม ด้วยอาร์กิวเมนต์ steps_per_execution ใน tf.keras.Model.compile คุณสามารถประมวลผลหลายชุดในการเรียก tf.function เดียว ซึ่งปรับปรุงการใช้งานอุปกรณ์บน TPU ได้อย่างมาก

สำหรับภาพรวมโดยละเอียดของวิธีใช้ fit โปรดดู คู่มือการฝึกอบรมและการประเมินผล หากต้องการเรียนรู้วิธีปรับแต่งลูปการฝึกอบรมและการประเมินผลในตัว โปรดดู ที่ การปรับแต่งสิ่งที่เกิดขึ้น fit()

API และเครื่องมืออื่นๆ

Keras มี API และเครื่องมืออื่นๆ อีกมากมายสำหรับการเรียนรู้เชิงลึก ได้แก่:

สำหรับรายการ API ที่พร้อมใช้งานทั้งหมด โปรดดูที่ การอ้างอิง Keras API หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับโครงการและความคิดริเริ่มอื่นๆ ของ Keras โปรดดู ระบบนิเวศของ Keras

ขั้นตอนถัดไป

หากต้องการเริ่มต้นใช้งาน Keras กับ TensorFlow โปรดดูหัวข้อต่อไปนี้:

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Keras ดูหัวข้อต่อไปนี้ที่ keras.io :