TensorFlow Lite มีเครื่องมือมากมายสำหรับการรวมโมเดลเข้ากับแอพ Android หน้านี้อธิบายถึงเครื่องมือในการพัฒนาเพื่อใช้ในการสร้างแอปด้วย Kotlin, Java และ C++ ตลอดจนการสนับสนุนการพัฒนา TensorFlow Lite ใน Android Studio
หากต้องการเริ่มต้นเขียนโค้ด Android อย่างรวดเร็ว โปรดดู Quickstart สำหรับ Android
เครื่องมือสำหรับสร้างด้วย Kotlin และ Java
ส่วนต่อไปนี้อธิบายเครื่องมือการพัฒนาสำหรับ TensorFlow Lite ที่ใช้ภาษา Kotlin และ Java
ไลบรารีงาน TensorFlow Lite
TensorFlow Lite Task Library ประกอบด้วยชุดของไลบรารีเฉพาะงานที่มีประสิทธิภาพและใช้งานง่ายสำหรับนักพัฒนาแอปในการสร้างด้วย TensorFlow Lite มีอินเทอร์เฟซโมเดลสำเร็จรูปที่ปรับให้เหมาะสมสำหรับงานแมชชีนเลิร์นนิงยอดนิยม เช่น การจัดประเภทรูปภาพ คำถามและคำตอบ เป็นต้น อินเทอร์เฟซโมเดลได้รับการออกแบบมาโดยเฉพาะสำหรับแต่ละงานเพื่อให้ได้ประสิทธิภาพและการใช้งานที่ดีที่สุด Task Library ทำงานข้ามแพลตฟอร์มและรองรับ Java และ C++
หากต้องการใช้ Task Library ในแอพ Android ของคุณ ให้ใช้ AAR จาก MavenCentral สำหรับ ไลบรารี Task Vision , ไลบรารี Task Text และ Task Audio Library ตามลำดับ
คุณสามารถระบุสิ่งนี้ในการพึ่งพา build.gradle
ของคุณดังนี้:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-task-vision:+'
implementation 'org.tensorflow:tensorflow-lite-task-text:+'
implementation 'org.tensorflow:tensorflow-lite-task-audio:+'
}
หากคุณใช้สแน็ปช็อตตอนกลางคืน ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มที่ เก็บสแน็ปช็อต Sonatype ในโครงการของคุณ
ดูคำแนะนำในภาพรวมของ TensorFlow Lite Task Library สำหรับรายละเอียดเพิ่มเติม
ห้องสมุด TensorFlow Lite
ใช้ไลบรารี TensorFlow Lite ในแอป Android ของคุณโดยเพิ่ม AAR ที่โฮสต์ที่ MavenCentral ในโครงการพัฒนาของคุณ
คุณสามารถระบุสิ่งนี้ในการพึ่งพา build.gradle
ของคุณดังนี้:
dependencies {
implementation 'org.tensorflow:tensorflow-lite:+'
}
หากคุณใช้สแน็ปช็อตตอนกลางคืน ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มที่ เก็บสแน็ปช็อต Sonatype ในโครงการของคุณ
AAR นี้มีไบนารีสำหรับ Android ABI ทั้งหมด คุณสามารถลดขนาดไบนารีของแอปพลิเคชันได้โดยการรวมเฉพาะ ABI ที่คุณต้องการรองรับ
ในกรณีส่วนใหญ่ คุณควรละเว้น x86
, x86_64
และ arm32
เว้นแต่คุณจะกำหนดเป้าหมายฮาร์ดแวร์เฉพาะ คุณสามารถกำหนดค่านี้ได้ด้วยการกำหนดค่า Gradle ต่อไปนี้ โดยจะรวมเฉพาะ armeabi-v7a
และ arm64-v8a
และควรครอบคลุมอุปกรณ์ Android ที่ทันสมัยที่สุด
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
}
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ abiFilters
โปรดดู Android ABI ในเอกสารประกอบ Android NDK
ห้องสมุดสนับสนุน TensorFlow Lite
TensorFlow Lite Android Support Library ช่วยให้การรวมโมเดลเข้ากับแอปพลิเคชันของคุณง่ายขึ้น มี API ระดับสูงที่ช่วยแปลงข้อมูลอินพุตดิบให้เป็นรูปแบบที่โมเดลต้องการ และตีความเอาต์พุตของโมเดล ซึ่งช่วยลดจำนวนโค้ดสำเร็จรูปที่ต้องใช้
รองรับรูปแบบข้อมูลทั่วไปสำหรับอินพุตและเอาต์พุต รวมถึงรูปภาพและอาร์เรย์ นอกจากนี้ยังมีหน่วยก่อนและหลังการประมวลผลที่ดำเนินการต่างๆ เช่น การปรับขนาดภาพและการครอบตัด
ใช้ไลบรารีการสนับสนุนในแอป Android ของคุณโดยรวม TensorFlow Lite Support Library AAR ที่โฮสต์ที่ MavenCentral
คุณสามารถระบุสิ่งนี้ในการพึ่งพา build.gradle
ของคุณดังนี้:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-support:+'
}
หากคุณใช้สแน็ปช็อตตอนกลางคืน ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มที่ เก็บสแน็ปช็อต Sonatype ในโครงการของคุณ
สำหรับคำแนะนำเกี่ยวกับวิธีเริ่มต้น โปรดดู TensorFlow Lite Android Support Library
เวอร์ชัน Android SDK ขั้นต่ำสำหรับไลบรารี
ห้องสมุด | minSdkVersion | ข้อกำหนดของอุปกรณ์ |
---|---|---|
tensorflow-lite | 19 | การใช้งาน NNAPI ต้องใช้ API 27+ |
tensorflow-lite-gpu | 19 | GLES 3.1 หรือ OpenCL (โดยทั่วไปมีเฉพาะใน API 21+ |
tensorflow-lite-หกเหลี่ยม | 19 | - |
รองรับ tensorflow-lite | 19 | - |
tensorflow-lite-task-vision | 21 | android.graphics.Color API ที่เกี่ยวข้องต้องใช้ API 26+ |
tensorflow-lite-ข้อความงาน | 21 | - |
tensorflow-lite-task-audio | 23 | - |
ข้อมูลเมตาของ tensorflow-lite | 19 | - |
ใช้ Android Studio
นอกจากไลบรารีสำหรับการพัฒนาที่อธิบายไว้ข้างต้นแล้ว Android Studio ยังรองรับการรวมโมเดล TensorFlow Lite ตามที่อธิบายไว้ด้านล่าง
การเชื่อมโยงโมเดล Android Studio ML
คุณลักษณะ ML Model Binding ของ Android Studio 4.1 และใหม่กว่าช่วยให้คุณสามารถนำเข้าไฟล์โมเดล .tflite
ลงในแอป Android ที่คุณมีอยู่ และสร้างคลาสอินเทอร์เฟซเพื่อให้รวมโค้ดของคุณเข้ากับโมเดลได้ง่ายขึ้น
ในการนำเข้าโมเดล TensorFlow Lite (TFLite):
คลิกขวาที่โมดูลที่คุณต้องการใช้โมเดล TFLite หรือคลิกที่ File > New > Other > TensorFlow Lite Model
เลือกตำแหน่งของไฟล์ TensorFlow Lite ของคุณ โปรดทราบว่าเครื่องมือจะกำหนดค่าการพึ่งพาของโมดูลด้วยการรวมโมเดล ML และเพิ่มการพึ่งพาที่จำเป็นทั้งหมดไปยังไฟล์
build.gradle
ของโมดูล Android ของคุณโดยอัตโนมัติคลิก
Finish
เพื่อเริ่มกระบวนการนำเข้า เมื่อการนำเข้าเสร็จสิ้น เครื่องมือจะแสดงหน้าจอที่อธิบายถึงโมเดล รวมถึงเทนเซอร์อินพุตและเอาท์พุตในการเริ่มใช้โมเดล ให้เลือก Kotlin หรือ Java คัดลอกและวางโค้ดในส่วน โค้ดตัวอย่าง
คุณสามารถกลับไปที่หน้าจอข้อมูลรุ่นโดยคลิกสองครั้งที่รุ่น TensorFlow Lite ใต้ไดเร็กทอรี ml
ใน Android Studio สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้คุณสมบัติ Modle Binding ของ Android Studio โปรดดู บันทึกประจำรุ่น ของ Android Studio สำหรับภาพรวมของการใช้การรวมโมเดลใน Android Studio โปรดดู คำแนะนำ ตัวอย่างโค้ด
เครื่องมือสำหรับสร้างด้วย C และ C++
ไลบรารี C และ C++ สำหรับ TensorFlow Lite มีไว้สำหรับนักพัฒนาที่ใช้ Android Native Development Kit (NDK) เป็นหลักในการสร้างแอปของตน มีสองวิธีในการใช้ TFLite ผ่าน C++ หากคุณสร้างแอปด้วย NDK:
TFLite C API
การใช้ API นี้เป็นแนวทางที่ แนะนำ สำหรับนักพัฒนาที่ใช้ NDK ดาวน์โหลด TensorFlow Lite AAR ที่โฮสต์ที่ไฟล์ MavenCentral เปลี่ยนชื่อเป็น tensorflow-lite-*.zip
และแตกไฟล์ คุณต้องรวมไฟล์ส่วนหัวสี่ไฟล์ในโฟลเดอร์ headers/tensorflow/lite/
และ headers/tensorflow/lite/c/
และไลบรารีไดนามิก libtensorflowlite_jni.so
ที่เกี่ยวข้องในโฟลเดอร์ jni jni/
ในโครงการ NDK ของคุณ
ไฟล์ส่วนหัว c_api.h
มีเอกสารประกอบพื้นฐานเกี่ยวกับการใช้ TFLite C API
TFLite C++ API
หากคุณต้องการใช้ TFLite ผ่าน C++ API คุณสามารถสร้างไลบรารีที่ใช้ร่วมกันของ C++:
32 บิต armeabi-v7a:
bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so
64 บิต arm64-v8a:
bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so
ปัจจุบัน ไม่มีวิธีที่ตรงไปตรงมาในการแยกไฟล์ส่วนหัวทั้งหมดที่จำเป็น ดังนั้นคุณต้องรวมไฟล์ส่วนหัวทั้งหมดใน tensorflow/lite/
จากที่เก็บ TensorFlow นอกจากนี้ คุณจะต้องมีไฟล์ส่วนหัวจาก FlatBuffers และ Abseil