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

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