TensorFlow Lite تعدادی ابزار برای ادغام مدل ها در برنامه های اندروید ارائه می دهد. در این صفحه ابزارهای توسعه برای استفاده در ساختن برنامهها با Kotlin، جاوا و C++ و همچنین پشتیبانی از توسعه TensorFlow Lite در Android Studio توضیح داده شده است.
برای شروع سریع نوشتن کد اندروید، Quickstart برای اندروید را ببینید
ابزارهای ساخت با کاتلین و جاوا
بخشهای زیر ابزارهای توسعه TensorFlow Lite را توضیح میدهند که از زبانهای Kotlin و Java استفاده میکنند.
TensorFlow Lite Task Library
TensorFlow Lite Task Library شامل مجموعهای از کتابخانههای قدرتمند و آسان برای کار خاص برای توسعهدهندگان برنامه است تا با TensorFlow Lite بسازند. این رابطهای مدل خارج از جعبه بهینهسازی شده را برای کارهای معروف یادگیری ماشین، مانند طبقهبندی تصویر، پرسش و پاسخ، و غیره فراهم میکند. رابطهای مدل بهطور خاص برای هر کار طراحی شدهاند تا به بهترین عملکرد و قابلیت استفاده دست یابند. Task Library به صورت کراس پلتفرم کار می کند و در جاوا و C++ پشتیبانی می شود.
برای استفاده از Task Library در برنامه اندروید خود، به ترتیب از AAR MavenCentral for Task Vision، کتابخانه Task Text و Task Audio Library استفاده کنید.
شما می توانید این را در وابستگی build.gradle
خود به صورت زیر مشخص کنید:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-task-vision:+'
implementation 'org.tensorflow:tensorflow-lite-task-text:+'
implementation 'org.tensorflow:tensorflow-lite-task-audio:+'
}
اگر از عکس های فوری شبانه استفاده می کنید، مطمئن شوید که مخزن عکس فوری Sonatype را به پروژه خود اضافه کرده اید.
برای جزئیات بیشتر به مقدمه در نمای کلی TensorFlow Lite Task Library مراجعه کنید.
کتابخانه TensorFlow Lite
با افزودن AAR میزبانی شده در MavenCentral به پروژه توسعه خود، از کتابخانه TensorFlow Lite در برنامه اندروید خود استفاده کنید.
شما می توانید این را در وابستگی build.gradle
خود به صورت زیر مشخص کنید:
dependencies {
implementation 'org.tensorflow:tensorflow-lite:+'
}
اگر از عکس های فوری شبانه استفاده می کنید، مطمئن شوید که مخزن عکس فوری Sonatype را به پروژه خود اضافه کرده اید.
این AAR شامل باینری ها برای همه ABI های Android است. شما می توانید اندازه باینری برنامه خود را تنها با گنجاندن ABI هایی که باید پشتیبانی کنید، کاهش دهید.
مگر اینکه سخت افزار خاصی را هدف قرار دهید، در بیشتر موارد باید ABI x86
، x86_64
و arm32
را حذف کنید. شما می توانید این را با پیکربندی Gradle زیر پیکربندی کنید. این به طور خاص فقط شامل armeabi-v7a
و arm64-v8a
است و باید اکثر دستگاههای اندرویدی مدرن را پوشش دهد.
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
}
برای کسب اطلاعات بیشتر در مورد abiFilters
، ABI های Android را در مستندات Android NDK ببینید.
کتابخانه پشتیبانی TensorFlow Lite
کتابخانه پشتیبانی Android TensorFlow Lite ادغام مدل ها را در برنامه شما آسان تر می کند. APIهای سطح بالایی را ارائه می دهد که به تبدیل داده های ورودی خام به فرم مورد نیاز مدل کمک می کند و خروجی مدل را تفسیر می کند و مقدار کد دیگ مورد نیاز را کاهش می دهد.
از فرمت های داده رایج برای ورودی و خروجی، از جمله تصاویر و آرایه ها پشتیبانی می کند. همچنین واحدهای پیش و پس از پردازش را فراهم می کند که وظایفی مانند تغییر اندازه و برش تصویر را انجام می دهند.
با گنجاندن TensorFlow Lite Support Library AAR میزبانی شده در MavenCentral ، از کتابخانه پشتیبانی در برنامه Android خود استفاده کنید.
شما می توانید این را در وابستگی build.gradle
خود به صورت زیر مشخص کنید:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-support:+'
}
اگر از عکس های فوری شبانه استفاده می کنید، مطمئن شوید که مخزن عکس فوری Sonatype را به پروژه خود اضافه کرده اید.
برای دستورالعملهای نحوه شروع، به کتابخانه پشتیبانی Android TensorFlow Lite مراجعه کنید.
حداقل نسخه Android SDK برای کتابخانه ها
کتابخانه | minSdkVersion | الزامات دستگاه |
---|---|---|
tensorflow-lite | 19 | استفاده از NNAPI به API 27+ نیاز دارد |
tensorflow-lite-gpu | 19 | GLES 3.1 یا OpenCL (معمولاً فقط در API 21+ موجود است |
tensorflow-lite-hexagon | 19 | - |
tensorflow-lite-support | 19 | - |
tensorflow-lite-task-vision | 21 | android.graphics.Color مربوط به API به API 26+ نیاز دارد |
tensorflow-lite-task-text | 21 | - |
tensorflow-lite-task-audio | 23 | - |
متاداده tensorflow-lite | 19 | - |
با استفاده از اندروید استودیو
علاوه بر کتابخانه های توسعه که در بالا توضیح داده شد، Android Studio همچنین از یکپارچه سازی مدل های TensorFlow Lite پشتیبانی می کند، همانطور که در زیر توضیح داده شده است.
Android Studio ML Model Binding
ویژگی ML Model Binding Android Studio نسخه 4.1 و بالاتر به شما امکان میدهد فایلهای مدل .tflite
. را در برنامه Android موجود خود وارد کنید و کلاسهای رابط ایجاد کنید تا ادغام کد خود با یک مدل آسانتر شود.
برای وارد کردن یک مدل TensorFlow Lite (TFLite):
روی ماژولی که میخواهید از مدل TFLite استفاده کنید کلیک راست کنید یا روی File > New > Other > TensorFlow Lite Model کلیک کنید.
محل فایل TensorFlow Lite خود را انتخاب کنید. توجه داشته باشید که ابزار، وابستگی ماژول را با ML Model binding پیکربندی می کند و به طور خودکار همه وابستگی های مورد نیاز را به فایل
build.gradle
ماژول اندروید شما اضافه می کند.برای شروع فرآیند واردات، روی
Finish
کلیک کنید. وقتی وارد کردن به پایان رسید، ابزار صفحهای را نمایش میدهد که مدل را شامل تانسورهای ورودی و خروجی آن توصیف میکند.برای شروع استفاده از مدل، Kotlin یا Java را انتخاب کنید، کد را در قسمت Sample Code کپی و پیست کنید.
میتوانید با دوبار کلیک کردن روی مدل TensorFlow Lite زیر فهرست ml
در Android Studio به صفحه اطلاعات مدل بازگردید. برای اطلاعات بیشتر در مورد استفاده از ویژگی Modle Binding Android Studio، به یادداشتهای انتشار Android Studio مراجعه کنید. برای مروری بر استفاده از مدل binding در Android Studio، دستورالعملهای نمونه کد را ببینید.
ابزارهایی برای ساخت با C و C++
کتابخانه های C و C++ برای TensorFlow Lite در درجه اول برای توسعه دهندگانی است که از کیت توسعه بومی Android (NDK) برای ساخت برنامه های خود استفاده می کنند. اگر برنامه خود را با NDK بسازید، دو راه برای استفاده از TFLite از طریق ++C وجود دارد:
TFLite C API
استفاده از این API رویکرد توصیه شده برای توسعه دهندگانی است که از NDK استفاده می کنند. TensorFlow Lite AAR میزبانی شده در فایل MavenCentral را دانلود کنید، نام آن را به tensorflow-lite-*.zip
تغییر دهید و آن را از حالت فشرده خارج کنید. شما باید چهار فایل هدر را در headers/tensorflow/lite/
و headers/tensorflow/lite/c/
و کتابخانه پویا libtensorflowlite_jni.so
را در پوشه jni/
در پروژه NDK خود وارد کنید.
فایل هدر c_api.h
حاوی اسناد اولیه در مورد استفاده از TFLite C API است.
TFLite C++ API
اگر میخواهید از TFLite از طریق C++ API استفاده کنید، میتوانید کتابخانههای مشترک C++ را بسازید:
32 بیت armeabi-v7a:
bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so
64 بیت arm64-v8a:
bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so
در حال حاضر، هیچ راه ساده ای برای استخراج تمام فایل های هدر مورد نیاز وجود ندارد، بنابراین باید همه فایل های هدر را در tensorflow/lite/
از مخزن TensorFlow قرار دهید. علاوه بر این، به فایلهای هدر FlatBuffers و Abseil نیاز دارید.