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

หน้านี้กล่าวถึงการใช้โมเดลการเรียนรู้ของเครื่องที่สร้างไว้แล้ว และไม่ครอบคลุมถึงการสร้าง การฝึกอบรม การทดสอบ หรือการแปลงโมเดล เรียนรู้เพิ่มเติมเกี่ยวกับการเลือก การแก้ไข การสร้าง และการแปลงโมเดล Machine Learning สำหรับ 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 หลัก 2 รายการที่คุณสามารถใช้เพื่อผสานรวมโมเดลการเรียนรู้ของเครื่อง TensorFlow Lite เข้ากับแอป Android ของคุณ:

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

ห้องสมุด

คุณสามารถเข้าถึง Task API หรือ 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 เพื่อรวมตัวดำเนินการและฟังก์ชันอื่นๆ ที่จำเป็นสำหรับการรันโมเดล Machine Learning ของ TensorFlow สำหรับข้อมูลเพิ่มเติม โปรดดูที่ Build TensorFlow Lite สำหรับ Android

API ของ C และ C++

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

การดำเนินการแบบจำลองบนเซิร์ฟเวอร์

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

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

การพัฒนาและการเพิ่มประสิทธิภาพโมเดลแบบกำหนดเอง

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

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