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 ของคุณ นี่คือตัวเลือกที่ต้องการ:

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

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

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

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

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

ห้องสมุด

คุณสามารถเข้าถึง Task API ได้โดยการรวม TensorFlow Lite Task Library ไว้ในแอพ Android ของคุณ ไลบรารีงานยังมีคลาสและเมธอดของ Interpreter API หากคุณต้องการ

หากต้องการใช้ Interpreter API คุณสามารถรวม ไลบรารี TensorFlow Lite อีกวิธีหนึ่ง คุณสามารถรวม ไลบรารีบริการ Google Play สำหรับ TensorFlow Lite และเข้าถึง Interpreter API ผ่านบริการ Play โดยไม่ต้องรวมไลบรารีแยกต่างหากในแอปของคุณ

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

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

รับรุ่น

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

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

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

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

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

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

ความเร็วที่โมเดลสามารถสร้างการอนุมานในอุปกรณ์เฉพาะได้ขึ้นอยู่กับขนาดของข้อมูลที่ประมวลผล ความซับซ้อนของโมเดล และทรัพยากรการประมวลผลที่มีอยู่ เช่น หน่วยความจำและ CPU หรือโปรเซสเซอร์พิเศษที่เรียกว่า accelerators โมเดลการเรียนรู้ของเครื่องสามารถทำงานได้เร็วขึ้นบนโปรเซสเซอร์พิเศษเหล่านี้ เช่น หน่วยประมวลผลกราฟิก (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 โปรดดู ที่แนวทางปฏิบัติที่ดีที่สุดเกี่ยว กับประสิทธิภาพในส่วนโมเดล

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