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 شما شرح می‌دهد. شما باید بیشترین توجه را به بخش محیط زمان اجرا و کتابخانه های توسعه داشته باشید. اگر یک مدل سفارشی ایجاد کرده‌اید، حتماً بخش مسیرهای توسعه پیشرفته را مرور کنید.

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

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

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

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

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

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

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

کتابخانه ها

می‌توانید با گنجاندن TensorFlow Lite Task Library در برنامه Android خود به Task API دسترسی پیدا کنید. کتابخانه Task همچنین شامل کلاس ها و متدهای Interpreter API در صورت نیاز است.

اگر فقط می خواهید از Interpreter API استفاده کنید، می توانید کتابخانه TensorFlow Lite را اضافه کنید. از طرف دیگر، می‌توانید کتابخانه خدمات Google Play را برای TensorFlow Lite اضافه کنید و از طریق سرویس‌های Play به API مترجم دسترسی داشته باشید، بدون اینکه کتابخانه جداگانه‌ای در برنامه خود قرار دهید.

کتابخانه TensorFlow Lite Support همچنین برای ارائه عملکردهای اضافی برای مدیریت داده‌ها برای مدل‌ها، فراداده مدل و نتایج استنتاج مدل در دسترس است.

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

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

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

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

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

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

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

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

سرعتی که یک مدل با آن می تواند استنتاج بر روی یک دستگاه خاص ایجاد کند به اندازه داده های پردازش شده، پیچیدگی مدل، و منابع محاسباتی موجود مانند حافظه و CPU یا پردازنده های تخصصی به نام شتاب دهنده بستگی دارد. مدل‌های یادگیری ماشینی می‌توانند با استفاده از درایورهای سخت‌افزار TensorFlow Lite به نام delegates ، روی این پردازنده‌های تخصصی مانند واحدهای پردازش گرافیکی (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، بهترین شیوه‌های عملکرد را در بخش مدل‌ها ببینید.

مراحل بعدی