หน้านี้อธิบายวิธีสร้างไลบรารี TensorFlow Lite สำหรับคอมพิวเตอร์ที่ใช้ ARM
TensorFlow Lite รองรับสองระบบบิลด์และฟีเจอร์ที่ได้รับการสนับสนุนจากแต่ละระบบบิลด์ไม่เหมือนกัน ตรวจสอบตารางต่อไปนี้เพื่อเลือกระบบการประกอบที่เหมาะสม
คุณสมบัติ | บาเซล | ซีเมค |
---|---|---|
ห่วงโซ่เครื่องมือที่กำหนดไว้ล่วงหน้า | armhf, aarch64 | อาร์เมล, อาร์มเอชเอฟ, อาร์ค64 |
ห่วงโซ่เครื่องมือที่กำหนดเอง | ใช้งานยากขึ้น | ง่ายต่อการใช้ |
เลือกการดำเนินการ TF | ได้รับการสนับสนุน | ไม่รองรับ |
ตัวแทน GPU | ใช้ได้เฉพาะกับ Android เท่านั้น | แพลตฟอร์มใด ๆ ที่รองรับ OpenCL |
XNNPack | ได้รับการสนับสนุน | ได้รับการสนับสนุน |
หลามล้อ | ได้รับการสนับสนุน | ได้รับการสนับสนุน |
ซี เอพีไอ | ได้รับการสนับสนุน | ได้รับการสนับสนุน |
C++ API | รองรับโครงการ Bazel | รองรับโครงการ CMake |
การรวบรวมข้ามสำหรับ ARM ด้วย CMake
หากคุณมีโปรเจ็กต์ CMake หรือหากคุณต้องการใช้ toolchain แบบกำหนดเอง คุณควรใช้ CMake สำหรับการคอมไพล์ข้าม มี การรวบรวม Cross TensorFlow Lite แยกต่างหากพร้อมหน้า CMake สำหรับสิ่งนี้
การรวบรวมข้ามสำหรับ ARM ด้วย Bazel
หากคุณมีโปรเจ็กต์ Bazel หรือต้องการใช้ TF ops คุณควรใช้ระบบ Bazel build คุณจะใช้ ชุดเครื่องมือ ARM GCC 8.3 ที่ผสานรวมกับ Bazel เพื่อสร้างไลบรารีที่ใช้ร่วมกัน ARM32/64
สถาปัตยกรรมเป้าหมาย | การกำหนดค่า Bazel | อุปกรณ์ที่รองรับ |
---|---|---|
อาร์มเอชเอฟ (ARM32) | --config=elinux_armhf | RPI3, RPI4 พร้อมระบบปฏิบัติการ Raspberry Pi 32 บิต |
AArch64 (ARM64) | --config=elinux_aarch64 | Coral, RPI4 พร้อม Ubuntu 64 บิต |
คำแนะนำต่อไปนี้ได้รับการทดสอบบน Ubuntu 16.04.3 พีซี 64 บิต (AMD64) และ TensorFlow devel docker image tensorflow/tensorflow:devel
หากต้องการคอมไพล์ TensorFlow Lite กับ Bazel ให้ทำตามขั้นตอน:
ขั้นตอนที่ 1 ติดตั้ง Bazel
Bazel เป็นระบบบิลด์หลักสำหรับ TensorFlow ติดตั้ง ระบบ Bazel build เวอร์ชันล่าสุด
ขั้นตอนที่ 2 ที่เก็บ Clone TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
ขั้นตอนที่ 3 สร้างไบนารี ARM
ห้องสมุดซี
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
คุณสามารถค้นหาไลบรารีที่ใช้ร่วมกันได้ใน: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
ตรวจสอบหน้า TensorFlow Lite C API เพื่อดูรายละเอียด
ไลบรารี C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
คุณสามารถค้นหาไลบรารีที่ใช้ร่วมกันได้ใน: bazel-bin/tensorflow/lite/libtensorflowlite.so
ปัจจุบันยังไม่มีวิธีที่ตรงไปตรงมาในการแตกไฟล์ส่วนหัวทั้งหมดที่จำเป็น ดังนั้นคุณต้องรวมไฟล์ส่วนหัวทั้งหมดใน tensorflow/lite/ จากที่เก็บ TensorFlow นอกจากนี้ คุณจะต้องมีไฟล์ส่วนหัวจาก FlatBuffers และ Abseil
ฯลฯ
คุณยังสามารถสร้างเป้าหมาย Bazel อื่นๆ ได้ด้วย toolchain เป้าหมายที่เป็นประโยชน์มีดังนี้
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image