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 ซึ่งช่วยให้คุณสร้างกราฟของเลเยอร์ได้ตามอำเภอใจ หรือ ใช้ subclassing เพื่อเขียนโมเดลตั้งแต่เริ่มต้น

คลาส 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 :