สร้างแพ็คเกจ TensorFlow Lite Python Wheel

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

คำแนะนำต่อไปนี้ได้รับการทดสอบบน Ubuntu 16.04.3 64-bit PC (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 พร้อมนีออน เข้ากันได้กับ Raspberry Pi 3 และ 4
rpi0 ARMv6 เข้ากันได้กับ Raspberry Pi Zero
aarch64 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 แขน-ลินุกซ์-gnueabihf-
ARMCC_FLAGS แฟล็กการรวบรวม -march=armv7-a -mfpu=นีออน-vfpv4