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