TensorFlow Lite สำหรับ Android

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

แผนงานการเรียนรู้

เรียนรู้แนวคิดและการออกแบบโค้ดสำหรับการสร้างแอป Android ด้วย TensorFlow Lite เพียง อ่าน ต่อ
เริ่มเขียนโค้ดแอป Android ด้วย TensorFlow Lite ทันทีด้วย Quickstart
เรียนรู้เกี่ยวกับการเลือกและใช้โมเดล ML กับ TensorFlow Lite ดูเอกสาร โมเดล

โมเดลการเรียนรู้ของเครื่อง

TensorFlow Lite ใช้โมเดล TensorFlow ที่แปลงเป็นรูปแบบแมชชีนเลิร์นนิงที่เล็กกว่า พกพาสะดวก และมีประสิทธิภาพมากขึ้น คุณสามารถใช้โมเดลที่สร้างไว้ล่วงหน้ากับ TensorFlow Lite บน Android หรือสร้างโมเดล TensorFlow ของคุณเองแล้วแปลงเป็นรูปแบบ TensorFlow Lite

หน้านี้กล่าวถึงการใช้โมเดลแมชชีนเลิร์นนิงที่สร้างไว้แล้ว และไม่ครอบคลุมถึงการสร้าง การฝึกอบรม การทดสอบ หรือการแปลงโมเดล เรียนรู้เพิ่มเติมเกี่ยวกับการหยิบ ดัดแปลง สร้าง และแปลงโมเดลแมชชีนเลิร์นนิงสำหรับ TensorFlow Lite ในส่วน โมเดล

เรียกใช้โมเดลบน Android

โมเดล TensorFlow Lite ที่ทำงานภายในแอป Android จะรับข้อมูล ประมวลผลข้อมูล และสร้างการคาดการณ์ตามตรรกะของโมเดล โมเดล TensorFlow Lite ต้องการสภาพแวดล้อมรันไทม์พิเศษเพื่อดำเนินการ และข้อมูลที่ถูกส่งผ่านไปยังโมเดลจะต้องอยู่ในรูปแบบข้อมูลเฉพาะ เรียกว่า เทนเซอร์ เมื่อโมเดลประมวลผลข้อมูลที่เรียกว่าการ อนุมาน โมเดลจะสร้างผลลัพธ์การคาดการณ์เป็นเมตริกซ์ใหม่ และส่งผ่านไปยังแอป Android เพื่อให้สามารถดำเนินการได้ เช่น แสดงผลให้ผู้ใช้เห็นหรือดำเนินการตามตรรกะทางธุรกิจเพิ่มเติม

ขั้นตอนการดำเนินการตามฟังก์ชันสำหรับรุ่น TensorFlow Lite ในแอป Android

รูปที่ 1. ขั้นตอนการดำเนินการตามฟังก์ชันสำหรับรุ่น TensorFlow Lite ในแอป Android

ที่ระดับการออกแบบการใช้งาน แอป Android ของคุณจำเป็นต้องมีองค์ประกอบต่อไปนี้เพื่อเรียกใช้โมเดล TensorFlow Lite:

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

ส่วนต่อไปนี้จะอธิบายวิธีที่ไลบรารีและเครื่องมือ TensorFlow Lite มีองค์ประกอบการทำงานเหล่านี้

สร้างแอปด้วย TensorFlow Lite

ส่วนนี้อธิบายเส้นทางทั่วไปที่แนะนำสำหรับการติดตั้ง TensorFlow Lite ในแอป Android ของคุณ คุณควรให้ความสนใจกับส่วน สภาพแวดล้อมรันไทม์ และ ไลบรารีการพัฒนา เป็นส่วนใหญ่ หากคุณได้พัฒนาโมเดลแบบกำหนดเอง อย่าลืมตรวจทานส่วน เส้นทางการพัฒนาขั้นสูง

ตัวเลือกสภาพแวดล้อมรันไทม์

มีหลายวิธีที่คุณสามารถเปิดใช้งานสภาพแวดล้อมรันไทม์สำหรับการเรียกใช้โมเดลในแอป Android ของคุณ นี่คือตัวเลือกที่ต้องการ:

โดยทั่วไปแล้ว คุณควรใช้สภาพแวดล้อมรันไทม์ที่ให้บริการโดย Google Play เนื่องจากมีประสิทธิภาพด้านพื้นที่มากกว่าสภาพแวดล้อมมาตรฐานเนื่องจากโหลดแบบไดนามิก ทำให้ขนาดแอปของคุณเล็กลง บริการ Google Play ยังใช้รันไทม์ TensorFlow Lite รุ่นล่าสุดที่เสถียรโดยอัตโนมัติ ทำให้คุณมีคุณลักษณะเพิ่มเติมและประสิทธิภาพที่ดีขึ้นเมื่อเวลาผ่านไป หากคุณเสนอแอปของคุณบนอุปกรณ์ที่ไม่มีบริการ Google Play หรือคุณจำเป็นต้องจัดการสภาพแวดล้อมรันไทม์ ML ของคุณอย่างใกล้ชิด คุณควรใช้รันไทม์ TensorFlow Lite มาตรฐาน ตัวเลือกนี้จะรวมโค้ดเพิ่มเติมไว้ในแอปของคุณ ช่วยให้คุณควบคุมรันไทม์ ML ในแอปของคุณได้มากขึ้น โดยมีค่าใช้จ่ายในการเพิ่มขนาดการดาวน์โหลดของแอป

คุณเข้าถึงสภาพแวดล้อมรันไทม์เหล่านี้ในแอป Android โดยเพิ่มไลบรารีการพัฒนา TensorFlow Lite ในสภาพแวดล้อมการพัฒนาแอปของคุณ สำหรับข้อมูลเกี่ยวกับวิธีใช้สภาพแวดล้อมรันไทม์มาตรฐานในแอปของคุณ โปรดดูหัวข้อถัดไป

การพัฒนา API และไลบรารี

มีสอง API หลักที่คุณสามารถใช้เพื่อรวมโมเดลแมชชีนเลิร์นนิง TensorFlow Lite เข้ากับแอป Android ของคุณ:

Interpreter API จัดเตรียมคลาสและเมธอดสำหรับการรันการอนุมานด้วยโมเดล TensorFlow Lite ที่มีอยู่ TensorFlow Lite Task API ครอบคลุม Interpreter API และจัดเตรียมอินเทอร์เฟซการเขียนโปรแกรมระดับสูงสำหรับการทำงานการเรียนรู้ของเครื่องทั่วไปในการจัดการข้อมูลภาพ เสียง และข้อความ คุณควรใช้ Task API เว้นแต่จะพบว่าไม่รองรับกรณีการใช้งานเฉพาะของคุณ

ห้องสมุด

คุณสามารถเข้าถึง Task APIs หรือ Interpreter API โดยใช้ บริการ Google Play คุณยังสามารถใช้ไลบรารีแบบสแตนด์อโลนสำหรับ งาน TensorFlow Lite หรือ แกนหลัก ของ TensorFlow Lite และ สนับสนุน ไลบรารีในแอป Android ของคุณได้ สำหรับรายละเอียดการเขียนโปรแกรมเกี่ยวกับการใช้ไลบรารี TensorFlow Lite และสภาพแวดล้อมรันไทม์ โปรดดู ที่ เครื่องมือการพัฒนาสำหรับ Android

รับรุ่น

การเรียกใช้โมเดลในแอป Android ต้องใช้โมเดลรูปแบบ TensorFlow Lite คุณสามารถใช้โมเดลที่สร้างไว้ล่วงหน้าหรือสร้างด้วย TensorFlow แล้วแปลงเป็นรูปแบบ Lite สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการรับรุ่นสำหรับแอพ Android ของคุณ โปรดดูส่วน รุ่น TensorFlow Lite

จัดการข้อมูลอินพุต

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

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

เรียกใช้การอนุมาน

การประมวลผลข้อมูลผ่านแบบจำลองเพื่อสร้างผลการคาดคะเนเรียกว่าการ อนุมาน การรันการอนุมานในแอป Android ต้องใช้ สภาพแวดล้อมรันไทม์ TensorFlow Lite โมเดล และ ข้อมูลอินพุต

ความเร็วที่โมเดลสามารถสร้างการอนุมานบนอุปกรณ์เฉพาะขึ้นอยู่กับขนาดของข้อมูลที่ประมวลผล ความซับซ้อนของโมเดล และทรัพยากรการคำนวณที่มีอยู่ เช่น หน่วยความจำและ CPU หรือโปรเซสเซอร์พิเศษที่เรียกว่า ตัวเร่งความเร็ว โมเดลการเรียนรู้ของเครื่องสามารถทำงานได้เร็วขึ้นบนโปรเซสเซอร์พิเศษเหล่านี้ เช่น หน่วยประมวลผลกราฟิก (GPU) และหน่วยประมวลผลเทนเซอร์ (TPU) โดยใช้ไดรเวอร์ฮาร์ดแวร์ TensorFlow Lite ที่เรียกว่า ผู้รับมอบสิทธิ์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับผู้รับมอบสิทธิ์และการเร่งฮาร์ดแวร์ของการประมวลผลแบบจำลอง โปรดดูที่ ภาพรวมการเร่งฮาร์ดแวร์

จัดการผลลัพธ์ผลลัพธ์

โมเดลจะสร้างผลลัพธ์การคาดคะเนเป็นเมตริกซ์ ซึ่งต้องจัดการโดยแอป Android ของคุณโดยการดำเนินการหรือแสดงผลต่อผู้ใช้ ผลลัพธ์ของแบบจำลองสามารถทำได้ง่ายพอๆ กับตัวเลขที่สอดคล้องกับผลลัพธ์เดียว (0 = สุนัข, 1 = แมว, 2 = นก) สำหรับการจำแนกประเภทรูปภาพ ไปจนถึงผลลัพธ์ที่ซับซ้อนมากขึ้น เช่น กล่องขอบเขตหลายกล่องสำหรับวัตถุที่จัดประเภทไว้ใน รูปภาพพร้อมคะแนนความเชื่อมั่นในการทำนายระหว่าง 0 ถึง 1

เส้นทางการพัฒนาขั้นสูง

เมื่อใช้โมเดล TensorFlow Lite ที่ซับซ้อนและปรับแต่งได้เอง คุณอาจต้องใช้แนวทางการพัฒนาขั้นสูงกว่าที่อธิบายไว้ข้างต้น ส่วนต่อไปนี้อธิบายเทคนิคขั้นสูงสำหรับการเรียกใช้โมเดลและการพัฒนาสำหรับ TensorFlow Lite ในแอป Android

สภาพแวดล้อมรันไทม์ขั้นสูง

นอกจากรันไทม์มาตรฐานและสภาพแวดล้อมรันไทม์ของบริการ Google Play สำหรับ TensorFlow Lite แล้ว ยังมีสภาพแวดล้อมรันไทม์เพิ่มเติมที่คุณสามารถใช้กับแอป Android ของคุณได้ การใช้งานที่เป็นไปได้มากที่สุดสำหรับสภาพแวดล้อมเหล่านี้คือถ้าคุณมีโมเดลการเรียนรู้ของเครื่องที่ใช้การดำเนินการ ML ที่ไม่ได้รับการสนับสนุนโดยสภาพแวดล้อมรันไทม์มาตรฐานสำหรับ TensorFlow Lite

รันไทม์ TensorFlow Lite Flex ช่วยให้คุณสามารถรวมโอเปอเรเตอร์เฉพาะที่จำเป็นสำหรับโมเดลของคุณ ในฐานะตัวเลือกขั้นสูงสำหรับการรันโมเดลของคุณ คุณสามารถสร้าง TensorFlow Lite สำหรับ Android เพื่อรวมโอเปอเรเตอร์และฟังก์ชันอื่นๆ ที่จำเป็นสำหรับการรันโมเดลแมชชีนเลิร์นนิง TensorFlow ของคุณ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ Build TensorFlow Lite สำหรับ Android

C และ C++ APIs

TensorFlow Lite ยังมี API สำหรับการรันโมเดลโดยใช้ C และ C++ หากแอปของคุณใช้ Android NDK คุณควรพิจารณาใช้ API นี้ คุณอาจต้องการพิจารณาใช้ API นี้หากต้องการแชร์รหัสระหว่างหลายแพลตฟอร์ม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกการพัฒนานี้ โปรดดูที่หน้า เครื่องมือการพัฒนา

การดำเนินการโมเดลบนเซิร์ฟเวอร์

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

Google Cloud มีชุดบริการเต็มรูปแบบสำหรับการเรียกใช้โมเดลการเรียนรู้ของเครื่อง TensorFlow สำหรับข้อมูลเพิ่มเติม โปรดดูหน้า ผลิตภัณฑ์ AI และผลิตภัณฑ์การเรียนรู้ของเครื่อง ของ Google Cloud

การพัฒนาและปรับแต่งโมเดลแบบกำหนดเอง

เส้นทางการพัฒนาขั้นสูงมีแนวโน้มที่จะรวมถึงการพัฒนาโมเดลการเรียนรู้ด้วยเครื่องแบบกำหนดเองและการเพิ่มประสิทธิภาพโมเดลเหล่านั้นเพื่อใช้งานบนอุปกรณ์ Android หากคุณวางแผนที่จะสร้างแบบจำลองแบบกำหนดเอง ตรวจสอบให้แน่ใจว่าคุณได้พิจารณาใช้ เทคนิคการหาปริมาณ กับแบบจำลองเพื่อลดหน่วยความจำและค่าใช้จ่ายในการประมวลผล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างโมเดลประสิทธิภาพสูงสำหรับใช้กับ TensorFlow Lite โปรดดู แนวทางปฏิบัติที่ดีที่สุดเกี่ยว กับประสิทธิภาพในส่วนโมเดล

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