สร้างแพ็คเกจวงล้อ Python TensorFlow Lite

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

คำแนะนำต่อไปนี้ได้รับการทดสอบบน Ubuntu 16.04.3 พีซี 64 บิต (AMD64) , macOS Catalina (x86_64) และ TensorFlow devel Docker image tensorflow/tensorflow:devel

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

คุณต้องติดตั้ง CMake และสำเนาซอร์สโค้ด TensorFlow โปรดตรวจสอบรายละเอียดในหน้า Build TensorFlow Lite ด้วย CMake

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

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

การรวบรวมข้าม ARM

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

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

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 จำเป็นต้องมีชื่อเป้าหมายเพื่อค้นหาสถาปัตยกรรมเป้าหมาย นี่คือรายการเป้าหมายที่รองรับ

เป้า สถาปัตยกรรมเป้าหมาย ความคิดเห็น
อาร์มเฮฟ ARMv7 VFP พร้อมนีออน เข้ากันได้กับราสเบอร์รี่ Pi 3 และ 4
rpi0 ARMv6 เข้ากันได้กับราสเบอร์รี่ Pi ศูนย์
อาร์ค64 aarch64 (ARM 64 บิต) คอรัลเมนเดลลินุกซ์ 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

จะใช้ toolchain แบบกำหนดเองได้อย่างไร?

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

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