ساخت TensorFlow Lite برای بردهای ARM

این صفحه نحوه ساخت کتابخانه های TensorFlow Lite را برای رایانه های مبتنی بر ARM شرح می دهد.

TensorFlow Lite از دو سیستم ساخت پشتیبانی می کند و ویژگی های پشتیبانی شده از هر سیستم ساخت یکسان نیستند. جدول زیر را برای انتخاب یک سیستم ساخت مناسب بررسی کنید.

ویژگی بازل CMake
زنجیره های ابزار از پیش تعریف شده armhf, aarch64 armel, armhf, aarch64
زنجیره های ابزار سفارشی سخت تر برای استفاده آسان برای استفاده
TF ops را انتخاب کنید پشتیبانی پشتیبانی نشده
نماینده GPU فقط برای اندروید موجود است هر پلتفرمی که از OpenCL پشتیبانی می کند
XNNPack پشتیبانی پشتیبانی
چرخ پایتون پشتیبانی پشتیبانی
C API پشتیبانی پشتیبانی
C++ API برای پروژه های بازل پشتیبانی می شود برای پروژه های CMake پشتیبانی می شود

کامپایل متقابل برای ARM با CMake

اگر پروژه CMake دارید یا می خواهید از یک زنجیره ابزار سفارشی استفاده کنید، بهتر است از CMake برای کامپایل متقابل استفاده کنید. برای این کار یک صفحه مجزای Cross Compilation TensorFlow Lite با CMake وجود دارد.

کامپایل متقابل برای ARM با Bazel

اگر پروژه Bazel دارید یا می خواهید از TF ops استفاده کنید، بهتر است از سیستم ساخت Bazel استفاده کنید. شما از زنجیره ابزار یکپارچه ARM GCC 8.3 با Bazel برای ایجاد یک کتابخانه مشترک ARM32/64 استفاده خواهید کرد.

معماری هدف پیکربندی Bazel دستگاه های سازگار
armhf (ARM32) --config=elinux_armhf RPI3، RPI4 با سیستم عامل Raspberry Pi 32 بیتی
AArch64 (ARM64) --config=elinux_aarch64 Coral، RPI4 با اوبونتو 64 بیتی

دستورالعمل‌های زیر روی رایانه‌های شخصی ۶۴ بیتی اوبونتو ۱۶.۰۴.۳ (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

کتابخانه C
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 را با زنجیره ابزار بسازید. در اینجا چند هدف مفید آورده شده است.

  • //tensorflow/lite/tools/benchmark:benchmark_model
  • //tensorflow/lite/examples/label_image:label_image