این صفحه نحوه ساخت کتابخانه های 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