ขอขอบคุณที่เข้าร่วม Google I/O ดูเซสชั่นทั้งหมดตามความต้องการ ดูตามความต้องการ

สร้าง TensorFlow Lite สำหรับบอร์ด ARM

หน้านี้อธิบายวิธีสร้างไลบรารี TensorFlow Lite สำหรับคอมพิวเตอร์ที่ใช้ ARM

TensorFlow Lite รองรับระบบบิลด์สองระบบและฟีเจอร์ที่รองรับจากแต่ละระบบบิลด์จะไม่เหมือนกัน ตรวจสอบตารางต่อไปนี้เพื่อเลือกระบบบิลด์ที่เหมาะสม

คุณสมบัติ บาเซล ซีเมค
ห่วงโซ่เครื่องมือที่กำหนดไว้ล่วงหน้า armhf, aarch64 อาร์เมล, armhf, aarch64
ห่วงโซ่เครื่องมือแบบกำหนดเอง ใช้งานยากขึ้น ง่ายต่อการใช้
เลือก TF ops ได้รับการสนับสนุน ไม่รองรับ
ตัวแทน GPU ใช้ได้เฉพาะกับ Android เท่านั้น ทุกแพลตฟอร์มที่รองรับ OpenCL
เอ็กซ์เอ็นแพ็ค ได้รับการสนับสนุน ได้รับการสนับสนุน
ล้อหลาม ได้รับการสนับสนุน ได้รับการสนับสนุน
ซี เอพีไอ ได้รับการสนับสนุน ได้รับการสนับสนุน
C++ API รองรับโครงการ Bazel รองรับโครงการ CMake

การคอมไพล์ข้ามสำหรับ ARM กับ CMake

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

การรวบรวมข้ามสำหรับ ARM กับ Bazel

หากคุณมีโครงการ Bazel หรือต้องการใช้ TF ops คุณควรใช้ระบบสร้าง Bazel คุณจะใช้ toolchains ARM GCC 8.3 แบบบูรณาการกับ Bazel เพื่อสร้างไลบรารีที่ใช้ร่วมกัน ARM32/64

สถาปัตยกรรมเป้าหมาย การกำหนดค่า Bazel อุปกรณ์ที่เข้ากันได้
อาร์มเอชเอฟ (ARM32) --config=elinux_armhf RPI3, RPI4 พร้อมระบบปฏิบัติการ Raspberry Pi 32 บิต
อาร์ค64 (ARM64) --config=elinux_aarch64 Coral, RPI4 พร้อม Ubuntu 64 บิต

คำแนะนำต่อไปนี้ได้รับการทดสอบบน Ubuntu 16.04.3 64-bit PC (AMD64) และ TensorFlow devel docker image tensorflow/tensorflow:devel

หากต้องการข้ามการคอมไพล์ TensorFlow Lite กับ Bazel ให้ทำตามขั้นตอน:

ขั้นตอนที่ 1 ติดตั้ง Bazel

Bazel เป็นระบบสร้างหลักสำหรับ TensorFlow ติดตั้งเวอร์ชันล่าสุดของ ระบบการสร้าง Bazel

ขั้นตอนที่ 2 โคลนที่เก็บ 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