หน้านี้อธิบายวิธีสร้างไลบรารี 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 |