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 โปรดดูหัวข้อต่อไปนี้:
- โมเดลลำดับ
- API การทำงาน
- การฝึกอบรมและการประเมินผลด้วยวิธีการในตัว
- สร้างเลเยอร์และโมเดลใหม่ผ่านคลาสย่อย
- การทำให้เป็นอนุกรมและการบันทึก
- การทำงานกับเลเยอร์การประมวลผลล่วงหน้า
- การปรับแต่งสิ่งที่เกิดขึ้นให้พอดี ()
- การเขียนลูปการฝึกอบรมตั้งแต่เริ่มต้น
- การทำงานกับ RNN
- ทำความเข้าใจกับการมาสก์และการแพดดิ้ง
- การเขียนการโทรกลับของคุณเอง
- ถ่ายทอดการเรียนรู้และการปรับแต่งอย่างละเอียด
- Multi-GPU และการฝึกอบรมแบบกระจาย
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Keras ดูหัวข้อต่อไปนี้ที่ keras.io :