توضح هذه الصفحة كيفية إنشاء مكتبات TensorFlow Lite لأجهزة الكمبيوتر المستندة إلى ARM.
يدعم TensorFlow Lite نظامي بناء والميزات المدعومة من كل نظام بناء ليست متطابقة. تحقق من الجدول التالي لاختيار نظام بناء مناسب.
ميزة | بازل | CMake |
---|---|---|
سلاسل أدوات محددة مسبقًا | أرمف ، آذار 64 | Armel، armhf، aarch64 |
سلاسل الأدوات المخصصة | أصعب في الاستخدام | سهل الاستخدام |
حدد TF ops | أيد | غير مدعوم |
مندوب GPU | متاح فقط لنظام Android | أي منصة تدعم OpenCL |
XNNPack | أيد | أيد |
عجلة بايثون | أيد | أيد |
API C | أيد | أيد |
واجهة برمجة تطبيقات C ++ | مدعومة لمشاريع بازل | مدعومة لمشاريع CMake |
ترجمة متقاطعة لـ ARM مع CMake
إذا كان لديك مشروع CMake أو إذا كنت تريد استخدام سلسلة أدوات مخصصة ، فمن الأفضل استخدام CMake للتجميع المتقاطع. هناك تصنيف متقاطع منفصل TensorFlow Lite مع صفحة CMake متاحة لهذا الغرض.
ترجمة متقاطعة لـ ARM مع Bazel
إذا كان لديك مشروع Bazel أو إذا كنت تريد استخدام TF ops ، فمن الأفضل استخدام نظام Bazel build. ستستخدم سلاسل أدوات ARM GCC 8.3 المدمجة مع Bazel لإنشاء مكتبة مشتركة ARM32 / 64.
الهدف العمارة | تكوين Bazel | الأجهزة المتوافقة |
---|---|---|
armhf (ARM32) | --config = elinux_armhf | RPI3 ، RPI4 مع نظام تشغيل Raspberry Pi 32 بت |
AArch64 (ARM64) | --config = elinux_aarch64 | كورال ، RPI4 مع أوبونتو 64 بت |
تم اختبار الإرشادات التالية على Ubuntu 16.04.3 64-bit PC (AMD64) و TensorFlow devel docker image tensorflow / tensorflow: devel .
لتجميع TensorFlow Lite مع Bazel ، اتبع الخطوات:
الخطوة 1. تثبيت Bazel
Bazel هو نظام البناء الأساسي لـ TensorFlow. قم بتثبيت أحدث إصدار من نظام Bazel build .
الخطوة 2. استنساخ مستودع TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
الخطوة 3. بناء ARM ثنائي
مكتبة ج
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 أخرى باستخدام toolchain. فيما يلي بعض الأهداف المفيدة.
- // tensorflow / لايت / أدوات / مقياس الأداء: benchmark_model
- // tensorflow / lite / أمثلة / label_image: label_image