این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

ساخت TensorFlow Lite برای آندروید

این سند چگونگی ساخت کتابخانه TensorFlow Lite Android را به تنهایی شرح می دهد. به طور معمول ، دیگر نیازی به ساخت محلی کتابخانه اندروید TensorFlow Lite ندارید. اگر فقط می خواهید از آن استفاده کنید ، ساده ترین راه استفاده از TensorFlow Lite AAR است که در JCenter میزبانی شده است . مشاهده آندروید شروع سریع برای جزئیات بیشتر در مورد چگونگی استفاده از آنها در پروژه آندروید خود را.

TensorFlow Lite را بصورت محلی بسازید

در برخی موارد ، شما ممکن است مایل به استفاده از ساخت محلی TensorFlow Lite باشید. به عنوان مثال ، شما ممکن است در حال ساختن یک باینری دلخواه باشید که شامل عملیات انتخاب شده از TensorFlow باشد ، یا ممکن است بخواهید تغییرات محلی را در TensorFlow Lite ایجاد کنید.

محیط ساخت را با استفاده از Docker تنظیم کنید

  • پرونده Docker را بارگیری کنید. با بارگیری پرونده Docker ، شما موافقت می کنید که شرایط خدمات زیر استفاده شما از آن را حاکم است:

با کلیک بر روی پذیرش ، شما با این امر موافقت می کنید که کلیه موارد استفاده از Android Studio و کیت توسعه بومی Android با توافقنامه مجوز کیت توسعه نرم افزار Android که در https://developer.android.com/studio/terms موجود است اداره می شود (چنین URL ممکن است هر از گاهی توسط Google بروزرسانی یا تغییر می یابد).

برای دریافت فایل باید شرایط خدمات را تصدیق کنید. را تصدیق کنید

  • می توانید نسخه SDK یا NDK Android را به صورت اختیاری تغییر دهید. پرونده Docker بارگیری شده را در یک پوشه خالی قرار داده و با اجرای آن ، تصویر docker خود را بسازید:
docker build . -t tflite-builder -f tflite-android.Dockerfile
  • ظروف docker را به صورت تعاملی با نصب پوشه فعلی خود بر روی / tmp داخل ظرف شروع کنید (توجه داشته باشید که / tensorflow_src مخزن TensorFlow در داخل ظرف است):
docker run -it -v $PWD:/tmp tflite-builder bash

اگر از PowerShell در ویندوز استفاده می کنید ، "$ 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 درون ظرف کپی کنید تا بتوانید به آنها در هاست دسترسی پیدا کنید.

محیط ساخت بدون داکر را تنظیم کنید

پیش نیازهای Bazel و Android را نصب کنید

Bazel سیستم ساخت اولیه TensorFlow است. برای ساختن آن ، باید آن را داشته باشید و اندروید NDK و SDK روی سیستم خود نصب کنید.

  1. آخرین نسخه سیستم ساخت بازل را نصب کنید .
  2. Android NDK برای ساختن کد بومی (C / C ++) TensorFlow Lite لازم است. نسخه پیشنهادی فعلی 17c است که ممکن است در اینجا بیابید.
  3. SDK و ابزارهای ساخت Android ممکن است در اینجا یا متناوب به عنوان بخشی از Android Studio به دست بیایند . Build Tools API> = 23 نسخه پیشنهادی برای ساختن TensorFlow Lite است.

WORKSPACE و .bazelrc را پیکربندی کنید

اسکریپت ./configure را در فهرست ریشه پرداخت TensorFlow اجرا کنید و وقتی اسکریپت می خواهد پیکربندی متقابل ./WORKSPACE برای Android ./WORKSPACE ، پاسخ "بله" دهید. اسکریپت سعی خواهد کرد با استفاده از متغیرهای محیط زیر تنظیمات را پیکربندی کند:

  • ANDROID_SDK_HOME
  • ANDROID_SDK_API_LEVEL
  • ANDROID_NDK_HOME
  • ANDROID_NDK_API_LEVEL

اگر این متغیرها تنظیم نشده باشند ، آنها باید در فوری اسکریپت تعاملی ارائه شوند. پیکربندی موفقیت آمیز باید مطالب مشابه با موارد زیر را در پرونده .tf_configure.bazelrc در پوشه root داشته باشد:

3Db0ca5c5e

ساخت و نصب کنید

پس از تنظیم درست 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 استفاده کند ، tensorflow-lite.aar و به صورت اختیاری پرونده tensorflow-lite-select-tf-ops.aar را تولید می کند. برای اطلاعات بیشتر ، لطفاً به بخش اندازه باینری Reduce 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 ، می توانید از API های استنتاج استاندارد TensorFlow Lite Java در کد برنامه خود استفاده کنید.