قم ببناء TensorFlow Lite للوحات ARM

توضح هذه الصفحة كيفية إنشاء مكتبات 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