توضّح هذه الصفحة كيفية إنشاء مكتبات TensorFlow Lite لأجهزة الكمبيوتر المستندة إلى ARM.
يدعم TensorFlow Lite نظامَي تصميم، والميزات المتوافقة من كل نظام إنشاء غير متطابقة. راجع الجدول التالي لاختيار نظام إنشاء مناسب.
الميزة | Bazel | CMake |
---|---|---|
سلاسل الأدوات المحدَّدة مسبقًا | arhf، arc64 | أرمل، ذراع، قوس قزح 64 |
سلاسل أدوات مخصّصة | أصعب استخدامًا | وسهل الاستخدام |
اختيار عمليات TF | مدعوم | not supported |
تفويض وحدة معالجة الرسومات | متوفّرة لنظام Android فقط | أي نظام أساسي يدعم OpenCL |
XNNPack | مدعوم | مدعوم |
عجلة بايثون | مدعوم | مدعوم |
C API | مدعوم | متوافق |
C++ API | متوافق مع مشاريع Bazel | دعم لمشروعات CMake |
تجميع شامل لـ ARM باستخدام CMake
إذا كان لديك مشروع CMake أو إذا كنت تريد استخدام سلسلة أدوات مخصصة، فمن الأفضل استخدام CMake للتجميع المتبادل. هناك صفحة التجميع المتبادل TensorFlow Lite with CMake المنفصلة متاحة لذلك.
فيديو مجمَّع من صناعة ARM مع Bazel
إذا كان لديك مشروع Bazel أو كنت تريد استخدام عمليات TF، ننصحك باستخدام نظام إنشاء Bazel. ستستخدم مجموعة الأدوات ARM GCC 8.3 المدمجة مع Bazel لإنشاء مكتبة مشتركة بمعالج ARM32/64.
البنية المستهدفة | إعداد Bazel | الأجهزة المتوافقة |
---|---|---|
Armhf (ARM32) | --config=elinux_armhf | RPI3 وRPI4 مع نظام التشغيل Raspberry Pi بنظام التشغيل 32 بت |
AArch64 (ARM64) | --config=elinux_aarch64 | مرجاني، RPI4 مع Ubuntu 64 بت |
تم اختبار التعليمات التالية على جهاز كمبيوتر يعمل بنظام التشغيل Ubuntu 16.04.3 64 بت (AMD64) وTensorFlow من فئة TensorFlow لتطوير صورة Docker 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
.
في الوقت الحالي، لا توجد طريقة مباشرة لاستخراج جميع ملفات الرؤوس المطلوبة، لذا يجب تضمين جميع ملفات الرأس في tenorflow/lite/ من مستودع TensorFlow. بالإضافة إلى ذلك، ستحتاج إلى ملفات العنوان من FlatBuffers وAbseil.
أخرى
يمكنك أيضًا إنشاء أهداف Bazel أخرى باستخدام سلسلة الأدوات. إليك بعض الأهداف المفيدة.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image