TensorFlow Lite برای اندروید

TensorFlow Lite به شما امکان می دهد مدل های یادگیری ماشینی TensorFlow (ML) را در برنامه های Android خود اجرا کنید. سیستم TensorFlow Lite محیط های اجرایی از پیش ساخته شده و قابل تنظیم را برای اجرای سریع و کارآمد مدل ها در اندروید، از جمله گزینه هایی برای شتاب سخت افزاری، فراهم می کند.

نقشه راه یادگیری

با TensorFlow Lite مفاهیم و طراحی کد برای ساخت برنامه های اندروید را بیاموزید، فقط به خواندن ادامه دهید.
با استفاده از Quickstart بلافاصله با TensorFlow Lite کدنویسی یک برنامه Android را شروع کنید.
درباره انتخاب و استفاده از مدل‌های ML با TensorFlow Lite، به اسناد مدل‌ها مراجعه کنید.

مدل های یادگیری ماشینی

TensorFlow Lite از مدل های TensorFlow استفاده می کند که به فرمت مدل یادگیری ماشینی کوچکتر، قابل حمل و کارآمدتر تبدیل می شوند. می توانید از مدل های از پیش ساخته شده با TensorFlow Lite در اندروید استفاده کنید یا مدل های TensorFlow خود را بسازید و آنها را به فرمت TensorFlow Lite تبدیل کنید.

این صفحه درباره استفاده از مدل‌های یادگیری ماشین از قبل ساخته شده بحث می‌کند و ساخت، آموزش، آزمایش یا تبدیل مدل‌ها را پوشش نمی‌دهد. در مورد انتخاب، اصلاح، ساخت و تبدیل مدل‌های یادگیری ماشین برای TensorFlow Lite در بخش Models بیشتر بیاموزید.

مدل ها را در اندروید اجرا کنید

یک مدل TensorFlow Lite که در داخل یک برنامه اندروید اجرا می‌شود، داده‌ها را می‌گیرد، داده‌ها را پردازش می‌کند و بر اساس منطق مدل پیش‌بینی می‌کند. یک مدل TensorFlow Lite برای اجرا به محیط زمان اجرا خاصی نیاز دارد و داده‌هایی که به مدل منتقل می‌شوند باید در قالب داده‌ای خاص باشند که تانسور نامیده می‌شود. وقتی یک مدل داده‌ها را پردازش می‌کند، که به عنوان اجرای استنتاج شناخته می‌شود، نتایج پیش‌بینی را به‌عنوان تانسور جدید تولید می‌کند و آن‌ها را به برنامه Android ارسال می‌کند تا بتواند اقدامی انجام دهد، مانند نشان دادن نتیجه به کاربر یا اجرای منطق تجاری اضافی.

جریان اجرای عملکردی برای مدل‌های TensorFlow Lite در برنامه‌های اندروید

شکل 1. جریان اجرای عملکردی برای مدل های TensorFlow Lite در برنامه های اندروید.

در سطح طراحی عملکردی، برنامه اندروید شما برای اجرای یک مدل TensorFlow Lite به عناصر زیر نیاز دارد:

  • محیط اجرای TensorFlow Lite برای اجرای مدل
  • مدل کنترل کننده ورودی برای تبدیل داده ها به تانسور
  • مدل کنترل کننده خروجی برای دریافت تانسورهای نتیجه خروجی و تفسیر آنها به عنوان نتایج پیش بینی

بخش‌های زیر نحوه ارائه این عناصر عملکردی توسط کتابخانه‌ها و ابزارهای TensorFlow Lite را توضیح می‌دهند.

با TensorFlow Lite برنامه بسازید

این بخش رایج‌ترین و توصیه‌شده‌ترین مسیر را برای پیاده‌سازی TensorFlow Lite در برنامه Android شما شرح می‌دهد. شما باید بیشترین توجه را به بخش محیط زمان اجرا و کتابخانه های توسعه داشته باشید. اگر یک مدل سفارشی ایجاد کرده‌اید، حتماً بخش مسیرهای توسعه پیشرفته را مرور کنید.

گزینه های محیط زمان اجرا

راه های مختلفی وجود دارد که می توانید یک محیط زمان اجرا را برای اجرای مدل ها در برنامه اندروید خود فعال کنید. اینها گزینه های ترجیحی هستند:

به طور کلی، شما باید از محیط زمان اجرا ارائه شده توسط سرویس‌های Google Play استفاده کنید زیرا نسبت به محیط استاندارد از نظر فضا کارآمدتر است زیرا به صورت پویا بارگیری می‌شود و اندازه برنامه شما را کوچک‌تر نگه می‌دارد. سرویس‌های Google Play همچنین به‌طور خودکار از جدیدترین و پایدارترین نسخه اجرای TensorFlow Lite استفاده می‌کنند و ویژگی‌های اضافی و عملکرد بهبود یافته را در طول زمان به شما می‌دهند. اگر برنامه خود را در دستگاه‌هایی ارائه می‌دهید که شامل سرویس‌های Google Play نیستند یا باید محیط اجرای ML خود را از نزدیک مدیریت کنید، باید از زمان اجرا استاندارد TensorFlow Lite استفاده کنید. این گزینه کدهای اضافی را در برنامه شما قرار می دهد و به شما این امکان را می دهد که کنترل بیشتری بر زمان اجرای ML در برنامه خود داشته باشید و این به قیمت افزایش حجم دانلود برنامه است.

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

توسعه API ها و کتابخانه ها

دو API اصلی وجود دارد که می توانید از آنها برای ادغام مدل های یادگیری ماشینی TensorFlow Lite در برنامه اندروید خود استفاده کنید:

Interpreter API کلاس‌ها و روش‌هایی را برای اجرای استنتاج‌ها با مدل‌های موجود TensorFlow Lite فراهم می‌کند. TensorFlow Lite Task API Interpreter API را می‌پیچد و یک رابط برنامه‌نویسی سطح بالاتری را برای انجام وظایف رایج یادگیری ماشین در مدیریت داده‌های بصری، صوتی و متنی ارائه می‌کند. باید از Task API استفاده کنید، مگر اینکه متوجه شوید که مورد استفاده خاص شما را پشتیبانی نمی کند.

کتابخانه ها

می‌توانید با استفاده از سرویس‌های Google Play به Task API یا Interpreter API دسترسی پیدا کنید. همچنین می‌توانید از کتابخانه‌های مستقل برای وظایف TensorFlow Lite یا هسته TensorFlow Lite و کتابخانه‌های پشتیبانی در برنامه Android خود استفاده کنید. برای جزئیات برنامه‌نویسی درباره استفاده از کتابخانه‌های TensorFlow Lite و محیط‌های زمان اجرا، به ابزارهای توسعه برای Android مراجعه کنید.

مدل ها را بدست آورید

اجرای یک مدل در یک برنامه اندروید به یک مدل با فرمت TensorFlow Lite نیاز دارد. می توانید از مدل های از پیش ساخته شده استفاده کنید یا با TensorFlow یکی بسازید و آن را به فرمت Lite تبدیل کنید. برای کسب اطلاعات بیشتر در مورد به دست آوردن مدل برای برنامه Android خود، به بخش TensorFlow Lite Models مراجعه کنید.

مدیریت داده های ورودی

هر داده ای که به یک مدل ML ارسال می کنید باید یک تانسور با ساختار داده ای خاص باشد که اغلب به آن شکل تانسور می گویند. برای پردازش داده‌ها با یک مدل، کد برنامه شما باید داده‌ها را از قالب اصلی خود، مانند داده‌های تصویر، متن یا صدا، به یک تانسور به شکل مورد نیاز برای مدل شما تبدیل کند.

کتابخانه وظیفه TensorFlow Lite منطق مدیریت داده ها را برای تبدیل داده های بصری، متنی و صوتی به تانسورهایی با شکل صحیح برای پردازش توسط یک مدل TensorFlow Lite فراهم می کند.

استنتاج ها را اجرا کنید

پردازش داده ها از طریق یک مدل برای تولید یک نتیجه پیش بینی به عنوان اجرای یک استنتاج شناخته می شود. اجرای یک استنتاج در یک برنامه اندروید به یک محیط زمان اجرا TensorFlow Lite، یک مدل و داده های ورودی نیاز دارد.

سرعتی که یک مدل می‌تواند استنتاج را روی یک دستگاه خاص تولید کند، به اندازه داده‌های پردازش شده، پیچیدگی مدل، و منابع محاسباتی موجود مانند حافظه و CPU یا پردازنده‌های تخصصی به نام شتاب‌دهنده بستگی دارد. مدل‌های یادگیری ماشینی می‌توانند با استفاده از درایورهای سخت‌افزار TensorFlow Lite به نام delegate ، روی این پردازنده‌های تخصصی مانند واحدهای پردازش گرافیکی (GPU) و واحدهای پردازش تانسور (TPU) سریع‌تر اجرا شوند. برای اطلاعات بیشتر در مورد نمایندگان و شتاب سخت افزاری پردازش مدل، به نمای کلی شتاب سخت افزار مراجعه کنید.

نتایج خروجی را مدیریت کنید

مدل‌ها نتایج پیش‌بینی را به‌عنوان تانسور تولید می‌کنند که باید توسط برنامه Android شما با انجام اقدام یا نمایش نتیجه به کاربر مدیریت شود. نتایج خروجی مدل می‌تواند به اندازه یک عدد مربوط به یک نتیجه منفرد (0 = سگ، 1 = گربه، 2 = پرنده) برای طبقه‌بندی تصویر، تا نتایج بسیار پیچیده‌تر، مانند جعبه‌های محدودکننده چندگانه برای چندین شی طبقه‌بندی شده در یک تصویر، با رتبه بندی اطمینان پیش بینی بین 0 و 1.

مسیرهای توسعه پیشرفته

هنگام استفاده از مدل های پیچیده تر و سفارشی تر TensorFlow Lite، ممکن است لازم باشد از رویکردهای توسعه پیشرفته تری نسبت به آنچه در بالا توضیح داده شد استفاده کنید. بخش‌های زیر تکنیک‌های پیشرفته‌ای را برای اجرای مدل‌ها و توسعه آن‌ها برای TensorFlow Lite در برنامه‌های اندرویدی توضیح می‌دهند.

محیط های زمان اجرا پیشرفته

علاوه بر محیط‌های زمان اجرا استاندارد و سرویس‌های Google Play برای TensorFlow Lite، محیط‌های زمان اجرا دیگری نیز وجود دارد که می‌توانید با برنامه Android خود استفاده کنید. محتمل ترین استفاده برای این محیط ها در صورتی است که شما یک مدل یادگیری ماشینی دارید که از عملیات ML استفاده می کند که توسط محیط استاندارد زمان اجرا برای TensorFlow Lite پشتیبانی نمی شود.

زمان اجرا TensorFlow Lite Flex به شما امکان می دهد اپراتورهای خاصی را که برای مدل خود مورد نیاز است را در نظر بگیرید. به عنوان یک گزینه پیشرفته برای اجرای مدل خود، می توانید TensorFlow Lite را برای اندروید بسازید تا شامل اپراتورها و سایر عملکردهای مورد نیاز برای اجرای مدل یادگیری ماشینی TensorFlow شما باشد. برای اطلاعات بیشتر، به Build TensorFlow Lite برای Android مراجعه کنید.

C و C++ API

TensorFlow Lite همچنین یک API برای اجرای مدل‌های با استفاده از C و C++ ارائه می‌کند. اگر برنامه شما از Android NDK استفاده می کند، باید از این API استفاده کنید. همچنین اگر می خواهید بتوانید کد را بین چندین پلتفرم به اشتراک بگذارید، ممکن است بخواهید از این API استفاده کنید. برای اطلاعات بیشتر در مورد این گزینه توسعه، به صفحه ابزار توسعه مراجعه کنید.

اجرای مدل مبتنی بر سرور

به طور کلی، شما باید مدل هایی را در برنامه خود در دستگاه اندرویدی اجرا کنید تا از تاخیر کمتر و بهبود حریم خصوصی داده برای کاربران خود بهره ببرید. با این حال، مواردی وجود دارد که اجرای یک مدل در سرور ابری، خاموش دستگاه، راه حل بهتری است. به عنوان مثال، اگر یک مدل بزرگ دارید که به راحتی به اندازه ای که در دستگاه های اندرویدی کاربران شما مناسب است فشرده نمی شود یا می توان آن را با عملکرد معقول در آن دستگاه ها اجرا کرد. اگر عملکرد ثابت مدل در طیف گسترده‌ای از دستگاه‌ها اولویت اصلی باشد، این رویکرد ممکن است راه‌حل ترجیحی شما باشد.

Google Cloud مجموعه کاملی از خدمات را برای اجرای مدل‌های یادگیری ماشینی TensorFlow ارائه می‌کند. برای اطلاعات بیشتر، صفحه محصولات هوش مصنوعی و یادگیری ماشین Google Cloud را ببینید.

توسعه و بهینه سازی مدل سفارشی

مسیرهای توسعه پیشرفته‌تر احتمالاً شامل توسعه مدل‌های یادگیری ماشینی سفارشی و بهینه‌سازی آن مدل‌ها برای استفاده در دستگاه‌های Android است. اگر قصد ساختن مدل‌های سفارشی را دارید، مطمئن شوید که از تکنیک‌های کوانتیزاسیون برای کاهش هزینه‌های حافظه و پردازش در مدل‌ها استفاده می‌کنید. برای اطلاعات بیشتر در مورد نحوه ساخت مدل‌های با کارایی بالا برای استفاده با TensorFlow Lite، بهترین شیوه‌های عملکرد را در بخش مدل‌ها ببینید.

مراحل بعدی