توضح هذه الصفحة كيفية إنشاء مكتبات TensorFlow Lite لأجهزة الكمبيوتر المستندة إلى ARM.
يدعم TensorFlow Lite نظامي بناء والميزات المدعومة من كل نظام بناء ليست متطابقة. راجع الجدول التالي لاختيار نظام البناء المناسب.
ميزة | بازل | CMake |
---|---|---|
سلاسل الأدوات المحددة مسبقًا | أرمهف، آرتش64 | أرميل، أرمهف، aarch64 |
سلاسل الأدوات المخصصة | أصعب في الاستخدام | سهل الاستخدام |
حدد عمليات TF | أيد | غير معتمد |
مندوب GPU | متاح فقط لنظام Android | أي منصة تدعم OpenCL |
XNNPack | أيد | أيد |
عجلة بايثون | أيد | أيد |
واجهة برمجة التطبيقات C | أيد | أيد |
واجهة برمجة تطبيقات C++ | دعم لمشاريع بازل | دعم لمشاريع CMake |
التجميع المتقاطع لـ ARM مع CMake
إذا كان لديك مشروع CMake أو إذا كنت تريد استخدام سلسلة أدوات مخصصة، فمن الأفضل استخدام CMake للتجميع المتقاطع. هناك صفحة منفصلة من TensorFlow Lite مع صفحة CMake متاحة لهذا الغرض.
التجميع المتقاطع لـ ARM مع Bazel
إذا كان لديك مشروع Bazel أو إذا كنت ترغب في استخدام TF ops، فمن الأفضل استخدام نظام بناء Bazel. ستستخدم سلاسل أدوات ARMGC 8.3 المدمجة مع Bazel لإنشاء مكتبة مشتركة ARM32/64.
العمارة المستهدفة | تكوين بازل | الأجهزة المتوافقة |
---|---|---|
ارمهف (ARM32) | --config=elinux_armhf | RPI3، RPI4 مع نظام التشغيل Raspberry Pi 32 بت |
آرتش64 (ARM64) | --config=elinux_aarch64 | المرجان، RPI4 مع أوبونتو 64 بت |
تم اختبار الإرشادات التالية على Ubuntu 16.04.3 PC 64 بت (AMD64) و TensorFlow devel docker image Tensorflow/tensorflow:devel .
لدمج TensorFlow Lite مع Bazel، اتبع الخطوات:
الخطوة 1. تثبيت بازل
Bazel هو نظام البناء الأساسي لـ TensorFlow. قم بتثبيت أحدث إصدار من نظام بناء Bazel .
الخطوة 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 للحصول على التفاصيل.
مكتبة سي++
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