หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

ลดขนาดไบนารี TensorFlow Lite

ภาพรวม

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

Selective build ใช้กับไลบรารีการดำเนินการสามไลบรารีต่อไปนี้

  1. ไลบรารีตัวปฏิบัติการในตัวของ TensorFlow Lite
  2. TensorFlow Lite ตัวเลือกที่กำหนดเอง
  3. เลือก TensorFlow ops library

ตารางด้านล่างแสดงให้เห็นถึงผลกระทบของการสร้างแบบเลือกสำหรับบางกรณีการใช้งานทั่วไป:

ชื่อรุ่น โดเมน สถาปัตยกรรมเป้าหมาย ขนาดไฟล์ AAR
Mobilenet_1.0_224 (float) การจำแนกภาพ armeabi-v7a tensorflow-lite.aar (296,635 ไบต์)
arm64-V8A tensorflow-lite.aar (382,892 ไบต์)
เครื่องเทศ การแยกระดับเสียง armeabi-v7a tensorflow-lite.aar (375,813 ไบต์)
tensorflow-lite-select-tf-ops.aar (1,676,380 ไบต์)
arm64-V8A tensorflow-lite.aar (421,826 ไบต์)
tensorflow-lite-select-tf-ops.aar (2,298,630 ไบต์)
i3d-จลนพลศาสตร์-400 การจัดประเภทวิดีโอ armeabi-v7a tensorflow-lite.aar (240,085 ไบต์)
tensorflow-lite-select-tf-ops.aar (1,708,597 ไบต์)
arm64-V8A tensorflow-lite.aar (273,713 ไบต์)
tensorflow-lite-select-tf-ops.aar (2,339,697 ไบต์)

ปัญหา / ข้อ จำกัด ที่ทราบ

  1. Selective Build สำหรับ C API และเวอร์ชัน iOS ยังไม่รองรับในปัจจุบัน

เลือกสร้าง TensorFlow Lite ด้วย Bazel

ส่วนนี้จะถือว่าคุณได้ดาวน์โหลดซอร์สโค้ด TensorFlow และ ตั้งค่าสภาพแวดล้อมการพัฒนาท้องถิ่น เป็น Bazel

สร้างไฟล์ AAR สำหรับโครงการ Android

คุณสามารถสร้าง TensorFlow Lite AAR แบบกำหนดเองได้โดยระบุพา ธ ไฟล์โมเดลของคุณดังนี้

sh tensorflow/lite/tools/build_aar.sh \
  --input_models=/a/b/model_one.tflite,/c/d/model_two.tflite \
  --target_archs=x86,x86_64,arm64-v8a,armeabi-v7a

คำสั่งดังกล่าวจะสร้างไฟล์ AAR bazel-bin/tmp/tensorflow-lite.aar สำหรับ TensorFlow Lite ในตัวและตัวเลือกแบบกำหนดเอง และอีกทางหนึ่งคือสร้างไฟล์ bazel-bin/tmp/tensorflow-lite-select-tf-ops.aar หากโมเดลของคุณมี Select TensorFlow ops โปรดสังเกตว่าสิ่งนี้สร้าง AAR "อ้วน" ด้วยสถาปัตยกรรมที่แตกต่างกัน หากคุณไม่ต้องการทั้งหมดให้ใช้ชุดย่อยที่เหมาะสมกับสภาพแวดล้อมการปรับใช้ของคุณ

การใช้งานขั้นสูง: สร้างด้วยตัวเลือกที่กำหนดเอง

หากคุณได้พัฒนาโมเดล Tensorflow Lite ด้วยตัวเลือกที่กำหนดเองคุณสามารถสร้างได้โดยเพิ่มแฟล็กต่อไปนี้ในคำสั่ง build:

sh tensorflow/lite/tools/build_aar.sh \
  --input_models=/a/b/model_one.tflite,/c/d/model_two.tflite \
  --target_archs=x86,x86_64,arm64-v8a,armeabi-v7a \
  --tflite_custom_ops_srcs=/e/f/file1.cc,/g/h/file2.h \
  --tflite_custom_ops_deps=dep1,dep2

แฟ tflite_custom_ops_srcs มีไฟล์ต้นฉบับของ ops ที่กำหนดเองของคุณและแฟ tflite_custom_ops_deps มีการอ้างอิงเพื่อสร้างไฟล์ต้นฉบับเหล่านั้น โปรดสังเกตว่าการอ้างอิงเหล่านี้ต้องมีอยู่ในที่เก็บ TensorFlow

เลือกสร้าง TensorFlow Lite ด้วย Docker

ส่วนนี้จะถือว่าคุณได้ติดตั้ง Docker บนเครื่องของคุณและ สร้างไฟล์นักเทียบท่า TensorFlow Lite

สร้างไฟล์ AAR สำหรับโครงการ Android

ดาวน์โหลดสคริปต์สำหรับการสร้างด้วย Docker โดยเรียกใช้:

curl -o build_aar_with_docker.sh \
  https://raw.githubusercontent.com/tensorflow/tensorflow/master/tensorflow/lite/tools/build_aar_with_docker.sh &&
chmod +x build_aar_with_docker.sh

จากนั้นคุณสามารถสร้าง TensorFlow Lite AAR แบบกำหนดเองได้โดยระบุพา ธ ไฟล์โมเดลของคุณดังนี้

sh build_aar_with_docker.sh \
  --input_models=/a/b/model_one.tflite,/c/d/model_two.tflite \
  --target_archs=x86,x86_64,arm64-v8a,armeabi-v7a \
  --checkpoint=master

แฟล็ก checkpoint คือการคอมมิตสาขาหรือแท็กของที่เก็บ TensorFlow ที่คุณต้องการชำระเงินก่อนสร้างไลบรารี คำสั่งดังกล่าวจะสร้างไฟล์ AAR tensorflow-lite.aar สำหรับ TensorFlow Lite ในตัวและปฏิบัติการที่กำหนดเองและเลือกไฟล์ AAR tensorflow-lite-select-tf-ops.aar สำหรับ Ops เลือก TensorFlow ในไดเรกทอรีปัจจุบันของคุณ

เพิ่มไฟล์ AAR ในโครงการ

เพิ่มไฟล์ AAR โดย การนำเข้า AAR โดยตรง ไปยังโปรเจ็กต์ของคุณ หรือโดย การเผยแพร่ AAR ที่กำหนดเองไปยังที่เก็บ Maven ในเครื่องของคุณ โปรดทราบว่าคุณต้องเพิ่มไฟล์ AAR สำหรับ tensorflow-lite-select-tf-ops.aar ด้วยหากคุณสร้าง