ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

قم ببناء TensorFlow Lite لنظام Android

يصف هذا المستند كيفية إنشاء مكتبة TensorFlow Lite Android بنفسك. عادة ، لا تحتاج إلى إنشاء مكتبة TensorFlow Lite Android محليًا. إذا كنت ترغب فقط في استخدامه ، فإن أسهل طريقة هي استخدام TensorFlow Lite AAR المستضاف في JCenter . راجع Android quickstart لمزيد من التفاصيل حول كيفية استخدامها في مشاريع Android.

قم ببناء TensorFlow Lite محليًا

في بعض الحالات ، قد ترغب في استخدام إصدار محلي من TensorFlow Lite. على سبيل المثال ، قد تقوم ببناء ثنائي مخصص يتضمن عمليات محددة من TensorFlow ، أو قد ترغب في إجراء تغييرات محلية على TensorFlow Lite.

قم بإعداد بيئة البناء باستخدام Docker

  • قم بتنزيل ملف Docker. عن طريق تنزيل ملف Docker ، فإنك توافق على أن شروط الخدمة التالية تحكم استخدامك له:

بالنقر فوق قبول ، فإنك توافق بموجب هذا على أن جميع استخدامات Android Studio و Android Native Development Kit سيخضع لاتفاقية ترخيص مجموعة تطوير برامج Android المتاحة على https://developer.android.com/studio/terms (قد يكون عنوان URL هذا محكومًا يتم تحديثها أو تغييرها بواسطة Google من وقت لآخر).

يجب أن تقر بشروط الخدمة لتنزيل الملف. الاعتراف

  • يمكنك اختياريًا تغيير إصدار Android SDK أو NDK. ضع ملف Docker الذي تم تنزيله في مجلد فارغ وقم ببناء صورة عامل الإرساء عن طريق تشغيل:
docker build . -t tflite-builder -f tflite-android.Dockerfile
  • ابدأ حاوية عامل الإرساء بشكل تفاعلي عن طريق تثبيت مجلدك الحالي على / tmp داخل الحاوية (لاحظ أن / tensorflow_src هو مستودع TensorFlow داخل الحاوية):
docker run -it -v $PWD:/tmp tflite-builder bash

إذا كنت تستخدم PowerShell على Windows ، فاستبدل "$ PWD" بـ "pwd".

إذا كنت ترغب في استخدام مستودع TensorFlow على المضيف ، فقم بتحميل دليل المضيف بدلاً من ذلك (-v hostDir: / tmp).

  • بمجرد دخولك إلى الحاوية ، يمكنك تشغيل ما يلي لتنزيل مكتبات وأدوات Android إضافية (لاحظ أنك قد تحتاج إلى قبول الترخيص):
android update sdk --no-ui -a --filter tools,platform-tools,android-${ANDROID_API_LEVEL},build-tools-${ANDROID_BUILD_TOOLS_VERSION}

يمكنك الآن المتابعة إلى قسم "الإنشاء والتثبيت". بعد الانتهاء من إنشاء المكتبات ، يمكنك نسخها إلى / tmp داخل الحاوية حتى تتمكن من الوصول إليها على المضيف.

قم بإعداد بيئة البناء بدون Docker

تثبيت متطلبات Bazel و Android

Bazel هو نظام البناء الأساسي لـ TensorFlow. للبناء معه ، يجب أن يكون لديك وتثبيت Android NDK و SDK على نظامك.

  1. قم بتثبيت أحدث إصدار من نظام بناء Bazel .
  2. يلزم توفر Android NDK لإنشاء كود TensorFlow Lite (C / C ++) الأصلي. الإصدار الحالي الموصى به هو 17c ، والذي يمكن العثور عليه هنا .
  3. يمكن الحصول على Android SDK وأدوات الإنشاء هنا ، أو بدلاً من ذلك كجزء من Android Studio . أدوات البناء API> = 23 هو الإصدار الموصى به لبناء TensorFlow Lite.

قم بتكوين مساحة العمل و bazelrc

تشغيل ./configure النصي في الدليل الخروج TensorFlow الجذر، والجواب "نعم" عندما يطلب البرنامج النصي لتكوين تفاعلي ./WORKSPACE ليبني الروبوت. سيحاول البرنامج النصي تكوين الإعدادات باستخدام متغيرات البيئة التالية:

  • ANDROID_SDK_HOME
  • ANDROID_SDK_API_LEVEL
  • ANDROID_NDK_HOME
  • ANDROID_NDK_API_LEVEL

إذا لم يتم تعيين هذه المتغيرات ، فيجب تقديمها بشكل تفاعلي في موجه البرنامج النصي. يجب أن ينتج عن التكوين الناجح إدخالات مشابهة لما يلي في ملف .tf_configure.bazelrc في المجلد الجذر:

build --action_env ANDROID_NDK_HOME="/usr/local/android/android-ndk-r17c"
build --action_env ANDROID_NDK_API_LEVEL="21"
build --action_env ANDROID_BUILD_TOOLS_VERSION="28.0.3"
build --action_env ANDROID_SDK_API_LEVEL="23"
build --action_env ANDROID_SDK_HOME="/usr/local/android/android-sdk-linux"

بناء وتثبيت

بمجرد تكوين Bazel بشكل صحيح ، يمكنك إنشاء TensorFlow Lite AAR من دليل الخروج من الجذر على النحو التالي:

bazel build -c opt --fat_apk_cpu=x86,x86_64,arm64-v8a,armeabi-v7a \
  --host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
  //tensorflow/lite/java:tensorflow-lite

سيؤدي هذا إلى إنشاء ملف AAR في bazel-bin/tensorflow/lite/java/ . لاحظ أن هذا يبني AAR "سمين" بعدة بنيات مختلفة ؛ إذا لم تكن بحاجة إليها جميعًا ، فاستخدم المجموعة الفرعية المناسبة لبيئة النشر الخاصة بك.

bash tensorflow/lite/tools/build_aar.sh \
  --input_models=model1,model2 \
  --target_archs=x86,x86_64,arm64-v8a,armeabi-v7a

سينشئ البرنامج النصي أعلاه ملف tensorflow-lite.aar ملف tensorflow-lite-select-tf-ops.aar إذا كان أحد النماذج يستخدم عمليات Tensorflow. لمزيد من التفاصيل ، يرجى مراجعة قسم تقليل الحجم الثنائي TensorFlow Lite .

أضف AAR مباشرة إلى المشروع

انقل ملف tensorflow-lite.aar إلى دليل يسمى libs في مشروعك. قم بتعديل ملف build.gradle للإشارة إلى الدليل الجديد واستبدال تبعية TensorFlow Lite الحالية بالمكتبة المحلية الجديدة ، على سبيل المثال:

allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

dependencies {
    compile(name:'tensorflow-lite', ext:'aar')
}

قم بتثبيت AAR في مستودع Maven المحلي

قم بتنفيذ الأمر التالي من دليل الخروج الجذر الخاص بك:

mvn install:install-file \
  -Dfile=bazel-bin/tensorflow/lite/java/tensorflow-lite.aar \
  -DgroupId=org.tensorflow \
  -DartifactId=tensorflow-lite -Dversion=0.1.100 -Dpackaging=aar

في build.gradle ، تأكد من أن لديك mavenLocal() واستبدل تبعية TensorFlow Lite القياسية بالتبعية التي تدعم عمليات TensorFlow المحددة:

allprojects {
    repositories {
        jcenter()
        mavenLocal()
    }
}

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:0.1.100'
}

لاحظ أن إصدار 0.1.100 هنا مخصص فقط من أجل الاختبار / التطوير. مع تثبيت AAR المحلي ، يمكنك استخدام واجهات برمجة التطبيقات القياسية للاستدلال بجافا TensorFlow Lite في كود التطبيق الخاص بك.