ساخت 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 بیتی

دستورالعمل‌های زیر روی رایانه شخصی ۶۴ بیتی اوبونتو 16.04.3 (AMD64) و تصویر docker توسعه‌دهنده TensorFlow 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