แพ็กเกจล้อ Python ของบิลด์ TensorFlow Lite

หน้านี้อธิบายวิธีสร้างไลบรารี Python tflite_runtime ของ TensorFlow Lite สำหรับ x86_64 และอุปกรณ์ ARM ต่างๆ

วิธีการต่อไปนี้ได้รับการทดสอบกับ Ubuntu 16.04.3 64-bit PC (AMD64) , macOS Catalina (x86_64) และอิมเมจ TensorFlow devel Docker tensorflow/tensorflow:devel

ข้อกำหนดเบื้องต้น

คุณต้องติดตั้ง CMake และสำเนาของซอร์สโค้ด TensorFlow โปรดดูรายละเอียดที่หน้าสร้าง TensorFlow Lite ด้วย CMake

หากต้องการสร้างแพ็กเกจ PIP สำหรับเวิร์กสเตชัน คุณเรียกใช้คำสั่งต่อไปนี้ได้

PYTHON=python3 tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh native

การคอมไพล์ ARM แบบข้าม

เราขอแนะนำให้ใช้ Docker สำหรับการคอมไพล์ข้ามของ ARM เนื่องจากจะช่วยให้ตั้งค่าสภาพแวดล้อมแบบข้ามบิลด์ได้ง่ายขึ้น คุณต้องมีตัวเลือก target จึงจะเข้าใจสถาปัตยกรรมเป้าหมายได้ด้วย

มีเครื่องมือช่วยใน Makefile tensorflow/lite/tools/pip_package/Makefile ที่พร้อมเรียกใช้คำสั่งบิลด์โดยใช้คอนเทนเนอร์ Docker ที่กำหนดไว้ล่วงหน้า บนเครื่องโฮสต์ Docker คุณสามารถเรียกใช้คำสั่งบิลด์ดังต่อไปนี้

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=<target> PYTHON_VERSION=<python3 version>

ชื่อเป้าหมายที่ใช้ได้

สคริปต์ tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh ต้องใช้ชื่อเป้าหมายจึงจะเข้าใจสถาปัตยกรรมเป้าหมายได้ ต่อไปนี้คือรายการเป้าหมายที่สนับสนุน

เป้าหมาย สถาปัตยกรรมเป้าหมาย ความคิดเห็น
ArmHF ARMv7 VFP ที่มีแสงนีออน ใช้ได้กับ Raspberry Pi 3 และ 4
rpi0 ARMv6 ใช้ได้กับ Raspberry Pi Zero
aarch64 Aarch64 (ARM 64 บิต) Coral Mendel Linux 4.0
Raspberry Pi พร้อมเซิร์ฟเวอร์ Ubuntu 20.04.01 LTS 64 บิต
เนทีฟ เวิร์กสเตชันของคุณ สร้างด้วยการเพิ่มประสิทธิภาพแบบ "-mnative"
ค่าเริ่มต้น เวิร์กสเตชันของคุณ เป้าหมายเริ่มต้น

ตัวอย่างบิลด์

ตัวอย่างคำสั่งที่คุณใช้ได้มีดังนี้

เป้าหมาย armhf สำหรับ Python 3.7

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.7

เป้าหมาย aarch64 สำหรับ Python 3.8

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=aarch64 PYTHON_VERSION=3.8

วิธีใช้เชนเครื่องมือที่กำหนดเอง

หากไบนารีที่สร้างขึ้นใช้ไม่ได้กับเป้าหมาย คุณจะต้องใช้เชนเครื่องมือของคุณเองหรือระบุ Flag บิลด์ที่กำหนดเอง (ตรวจสอบส่วนนี้เพื่อทําความเข้าใจสภาพแวดล้อมเป้าหมาย) ในกรณีนี้ คุณจะต้องแก้ไข tensorflow/lite/tools/cmake/download_toolchains.sh ให้ใช้ Toolchain ของคุณเอง สคริปต์ Toolchain กำหนดตัวแปร 2 ตัวต่อไปนี้สำหรับสคริปต์ build_pip_package_with_cmake.sh

ตัวแปร วัตถุประสงค์ ตัวอย่าง
ARMCC_PREFIX กำหนดคำนำหน้า Toolchain arm-linux-gnueabihf-
ARMCC_FLAGS ธงรวมคลิป -march=armv7-a -mfpu=neon-vfpv4