با TensorFlow Lite و Firebase - Android Codelab توصیه هایی را به برنامه خود اضافه کنید

1. بررسی اجمالی

به توصیه‌های مربوط به TensorFlow Lite و Codelab Firebase خوش آمدید. در این کد لبه یاد خواهید گرفت که چگونه از TensorFlow Lite و Firebase برای استقرار یک مدل توصیه در برنامه خود استفاده کنید. این Codelab بر اساس این مثال TensorFlow Lite است.

توصیه‌ها به برنامه‌ها اجازه می‌دهند تا از یادگیری ماشینی برای ارائه هوشمندانه‌ترین محتوا برای هر کاربر استفاده کنند. آنها رفتار کاربر گذشته را در نظر می گیرند تا محتوای برنامه ای را که کاربر ممکن است بخواهد در آینده با آن تعامل داشته باشد، با استفاده از مدلی که بر روی رفتار جمعی تعداد زیادی از کاربران دیگر آموزش دیده است، پیشنهاد می کنند.

این آموزش نشان می‌دهد که چگونه با Firebase Analytics داده‌هایی را از کاربران برنامه خود به‌دست آورید، یک مدل یادگیری ماشینی برای توصیه‌هایی از آن داده‌ها بسازید، و سپس از آن مدل در یک برنامه اندروید برای اجرای استنتاج و دریافت توصیه‌ها استفاده کنید. به ویژه، توصیه‌های ما نشان می‌دهد که کاربر با توجه به فهرست فیلم‌هایی که قبلاً دوست داشته است، به احتمال زیاد کدام فیلم‌ها را تماشا می‌کند.

چیزی که یاد خواهید گرفت

  • Firebase Analytics را در یک برنامه اندرویدی ادغام کنید تا داده های رفتار کاربر را جمع آوری کنید
  • آن داده ها را به Google Big Query صادر کنید
  • داده ها را از قبل پردازش کنید و مدل توصیه های TF Lite را آموزش دهید
  • مدل TF Lite را در Firebase ML مستقر کرده و از برنامه خود به آن دسترسی داشته باشید
  • استنتاج دستگاه را با استفاده از مدل اجرا کنید تا توصیه هایی به کاربران ارائه دهید

آنچه شما نیاز دارید

  • آخرین نسخه اندروید استودیو .
  • کد نمونه
  • یک دستگاه آزمایشی با Android نسخه ۷ و بالاتر و سرویس‌های Google Play نسخه ۹.۸ یا بالاتر، یا شبیه‌ساز با سرویس‌های Google Play نسخه ۹.۸ یا بالاتر
  • در صورت استفاده از دستگاه، کابل اتصال.

چگونه از این آموزش استفاده خواهید کرد؟

فقط از طریق آن را بخوانید آن را بخوانید و تمرینات را کامل کنید

تجربه خود را در ساخت برنامه های اندروید چگونه ارزیابی می کنید؟

تازه کار حد واسط مسلط

2. کد نمونه را دریافت کنید

مخزن GitHub را از خط فرمان کلون کنید.

$ git clone https://github.com/FirebaseExtended/codelab-contentrecommendation-android.git

3. برنامه شروع را وارد کنید

از Android Studio، پوشه codelab-recommendations-android انتخاب کنید ( android_studio_folder.png ) از نمونه کد دانلود ( File > Open > .../codelab-recommendations-android/start).

اکنون باید پروژه شروع را در Android Studio باز کنید.

4. پروژه کنسول Firebase را ایجاد کنید

یک پروژه جدید ایجاد کنید

  1. به کنسول Firebase بروید.
  2. افزودن پروژه (یا ایجاد پروژه اگر اولین پروژه است) را انتخاب کنید.
  3. نام پروژه را انتخاب یا وارد کنید و روی Continue کلیک کنید.
  4. مطمئن شوید که "Enable Google Analytics for this project" فعال باشد.
  5. مراحل راه‌اندازی باقی‌مانده را در کنسول Firebase دنبال کنید، سپس روی ایجاد پروژه (یا افزودن Firebase، اگر از یک پروژه Google موجود استفاده می‌کنید) کلیک کنید.

5. Firebase را اضافه کنید

  1. از صفحه نمای کلی پروژه جدید خود، روی نماد Android کلیک کنید تا گردش کار راه اندازی شود.
  2. نام بسته Codelab را وارد کنید: com.google.firebase.codelabs.recommendations
  3. ثبت برنامه را انتخاب کنید.

فایل google-services.json را به برنامه خود اضافه کنید

پس از افزودن نام بسته و انتخاب ثبت نام، روی Download google-services.json کلیک کنید تا فایل پیکربندی Android Firebase خود را دریافت کنید و سپس فایل google-services.json را در فهرست app در پروژه خود کپی کنید. پس از دانلود فایل، می توانید مراحل بعدی نشان داده شده در کنسول را رد کنید (آنها قبلاً برای شما در پروژه build-android-start انجام شده اند).

افزونه google-services را به برنامه خود اضافه کنید

افزونه google-services از فایل google-services.json برای پیکربندی برنامه شما برای استفاده از Firebase استفاده می کند. خطوط زیر باید قبلاً به فایل‌های build.gradle.kts در پروژه اضافه شوند (برای تأیید بررسی کنید):

app/build.grade.kts

plugins {
    id("com.google.gms.google-services")
}

build.grade.kts

plugins {
    id("com.google.gms.google-services") version "4.3.15" apply false
}

پروژه خود را با فایل های gradle همگام سازی کنید

برای اطمینان از اینکه همه وابستگی ها برای برنامه شما در دسترس هستند، باید پروژه خود را با فایل های gradle در این مرحله همگام کنید. File > Sync Project with Gradle Files را از نوار ابزار Android Studio انتخاب کنید.

6. برنامه استارتر را اجرا کنید

اکنون که پروژه را به Android Studio وارد کرده اید و افزونه google-services با فایل JSON خود پیکربندی کرده اید، برای اولین بار آماده اجرای برنامه هستید. دستگاه اندروید خود را وصل کنید و روی Run کلیک کنید ( execute.png )در نوار ابزار Android Studio.

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

7. Firebase Analytics را به برنامه اضافه کنید

در این مرحله، Firebase Analytics را برای ثبت داده‌های رفتار کاربر (در این مورد، فیلم‌هایی که کاربر دوست دارد) به برنامه اضافه می‌کنید. این داده‌ها در مراحل آتی برای آموزش مدل توصیه‌ها به صورت مجموع استفاده خواهند شد.

وابستگی مواد و تجزیه و تحلیل Firebase را اضافه کنید

وابستگی های زیر برای افزودن Firebase Analytics به برنامه شما ضروری است. آنها باید قبلاً در فایل app/build.gradle.kts گنجانده شده باشند (تأیید شود).

app/build.grade.kts

implementation(platform("com.google.firebase:firebase-bom:32.0.0"))
implementation("com.google.firebase:firebase-analytics-ktx")

Firebase Analytics را در برنامه تنظیم کنید

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

تابع onMovieLiked را با کد زیر اضافه کنید تا زمانی که کاربر روی یک فیلم کلیک می‌کند، رویداد تحلیلی ثبت شود.

LikedMoviesViewModel.kt

import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.ktx.analytics
import com.google.firebase.analytics.ktx.logEvent
import com.google.firebase.ktx.Firebase


class LikedMoviesViewModel internal constructor (application: Application) : AndroidViewModel(application) {

    ...

    fun onMovieLiked(movie: Movie) {
        movies.setLike(movie, true)
        logAnalyticsEvent(movie.id.toString())
    }
       
}

فیلد و تابع زیر را برای ثبت رویداد Analytics هنگام اضافه شدن یک فیلم به لیست دوست داشتنی کاربر اضافه کنید.

LikedMoviesViewModel.kt

import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.ktx.analytics
import com.google.firebase.analytics.ktx.logEvent
import com.google.firebase.ktx.Firebase


class LikedMoviesViewModel internal constructor (application: Application) : AndroidViewModel(application) {
    ...
    private val firebaseAnalytics = Firebase.analytics

    ...

    /**
     * Logs an event in Firebase Analytics that is used in aggregate to train the recommendations
     * model.
     */
    private fun logAnalyticsEvent(id: String) {
        firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) {
            param(FirebaseAnalytics.Param.ITEM_ID, id)
        }
    }

8. یکپارچه سازی Analytics خود را آزمایش کنید

در این مرحله، رویدادهای Analytics را در برنامه تولید می‌کنیم و تأیید می‌کنیم که آنها به کنسول Firebase ارسال می‌شوند.

فعال کردن گزارش اشکال زدایی Analytics

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

پایانه

adb shell setprop debug.firebase.analytics.app com.google.firebase.codelabs.recommendations

تأیید کنید که رویدادهای Analytics ایجاد شده اند

  1. در استودیو اندروید، پنجره Logcat را باز کنید تا لاگ کردن برنامه خود را بررسی کنید.
  2. فیلتر Logcat را روی رشته "Logging event" تنظیم کنید.
  3. بررسی کنید که رویدادهای Analytics "select_item" هر ​​بار که فیلمی را در برنامه دوست دارید منتشر می شود.

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

اختیاری: رویدادهای Analytics را در Firebase Console تأیید کنید

  1. به کنسول Firebase بروید.
  2. DebugView را در بخش Analytics انتخاب کنید
  3. در اندروید استودیو، Run را انتخاب کنید تا برنامه راه اندازی شود و چند فیلم به لیست لایک شده خود اضافه شود.
  4. در DebugView کنسول Firebase، بررسی کنید که با افزودن فیلم‌ها به برنامه، این رویدادها ثبت می‌شوند.

9. داده های Analytics را به Big Query صادر کنید

Big Query یک محصول Google Cloud است که به شما امکان می دهد حجم زیادی از داده ها را بررسی و پردازش کنید. در این مرحله، پروژه Firebase Console خود را به Big Query متصل می کنید تا داده های Analytics تولید شده توسط برنامه شما به طور خودکار به Big Query صادر شود.

صادرات Big Query را فعال کنید

  1. به کنسول Firebase بروید.
  2. نماد چرخ دنده تنظیمات را در کنار نمای کلی پروژه انتخاب کنید و سپس تنظیمات پروژه را انتخاب کنید
  3. تب Integrations را انتخاب کنید.
  4. پیوند (یا مدیریت ) را در بلوک BigQuery انتخاب کنید.
  5. در مرحله About Linking Firebase به BigQuery گزینه Next را انتخاب کنید.
  6. در بخش پیکربندی یکپارچه‌سازی ، روی سوئیچ کلیک کنید تا ارسال داده‌های Google Analytics فعال شود و پیوند به BigQuery را انتخاب کنید.

اکنون پروژه کنسول Firebase خود را فعال کرده اید تا به طور خودکار داده های رویداد Firebase Analytics را به Big Query ارسال کند. این به طور خودکار و بدون هیچ گونه تعامل بیشتر اتفاق می افتد، با این حال، اولین صادراتی که مجموعه داده های تجزیه و تحلیل را در BigQuery ایجاد می کند ممکن است تا 24 ساعت اتفاق نیفتد. پس از ایجاد مجموعه داده، Firebase به طور مداوم رویدادهای جدید Analytics را به Big Query در جدول روزانه صادر می کند و رویدادهای روزهای گذشته را در جدول رویدادها گروه بندی می کند.

آموزش مدل توصیه ها به داده های زیادی نیاز دارد. از آنجایی که ما در حال حاضر اپلیکیشنی نداریم که حجم زیادی از داده را تولید کند، در مرحله بعدی یک مجموعه داده نمونه را به BigQuery وارد می کنیم تا در ادامه این آموزش از آن استفاده کنیم.

10. از BigQuery برای به دست آوردن داده های آموزشی مدل استفاده کنید

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

مجموعه داده نمونه را به BigQuery وارد کنید

  1. به داشبورد BigQuery در کنسول ابری Google بروید.
  2. نام پروژه خود را در منو انتخاب کنید.
  3. نام پروژه خود را در پایین ناوبری سمت چپ BigQuery انتخاب کنید تا جزئیات را ببینید.
  4. ایجاد مجموعه داده را انتخاب کنید تا پانل ایجاد مجموعه داده باز شود.
  5. «firebase_recommendations_dataset» را برای شناسه مجموعه داده وارد کنید و ایجاد مجموعه داده را انتخاب کنید.
  6. مجموعه داده جدید در منوی سمت چپ زیر نام پروژه نمایش داده می شود. روی آن کلیک کنید.
  7. برای باز کردن پنل ایجاد جدول ، Create table را انتخاب کنید.
  8. برای ایجاد جدول از «Google Cloud Storage» را انتخاب کنید.
  9. در قسمت انتخاب فایل از سطل GCS ، «gs://firebase-recommendations/recommendations-test/formatted_data_filtered.txt» را وارد کنید.
  10. "JSONL" را در قالب بازشوی File انتخاب کنید.
  11. 'recommendations_table' را برای نام جدول وارد کنید.
  12. کادر زیر Schema > Auto detect > Schema and input parameters را علامت بزنید
  13. ایجاد جدول را انتخاب کنید

مجموعه داده نمونه را کاوش کنید

در این مرحله، می توانید به صورت اختیاری طرحواره را کاوش کرده و پیش نمایش این مجموعه داده را مشاهده کنید.

  1. برای گسترش جداول موجود در منوی سمت چپ ، firebase-recommendations-dataset را انتخاب کنید.
  2. برای مشاهده طرح جدول، جدول توصیه ها را انتخاب کنید.
  3. پیش‌نمایش را انتخاب کنید تا داده‌های رویداد Analytics واقعی این جدول را ببینید.

اعتبار حساب سرویس ایجاد کنید

اکنون، اعتبارنامه‌های حساب سرویس را در پروژه کنسول Google Cloud خود ایجاد می‌کنیم که می‌توانیم از آن در محیط Colab در مرحله زیر برای دسترسی و بارگیری داده‌های BigQuery خود استفاده کنیم.

  1. مطمئن شوید که صورتحساب برای پروژه Google Cloud شما فعال است.
  2. API های BigQuery و BigQuery Storage API را فعال کنید. < اینجا را کلیک کنید >
  3. به صفحه Create Service Account Key بروید.
  4. از لیست حساب سرویس ، حساب سرویس جدید را انتخاب کنید.
  5. در قسمت نام حساب سرویس ، یک نام وارد کنید.
  6. از فهرست نقش ، پروژه > مالک را انتخاب کنید.
  7. روی ایجاد کلیک کنید. یک فایل JSON که حاوی دانلودهای کلید شما در رایانه شما است.

در مرحله بعدی، از Google Colab برای پیش پردازش این داده ها و آموزش مدل توصیه های خود استفاده خواهیم کرد.

11. داده های پیش پردازش و مدل توصیه های قطار

در این مرحله از یک نوت بوک Colab برای انجام مراحل زیر استفاده می کنیم:

  1. داده های BigQuery را به نوت بوک Colab وارد کنید
  2. داده ها را پیش پردازش کنید تا برای آموزش مدل آماده شوند
  3. آموزش مدل توصیه‌ها بر روی داده‌های تحلیلی
  4. مدل را به عنوان یک مدل TF lite صادر کنید
  5. مدل را در کنسول Firebase قرار دهید تا بتوانیم از آن در برنامه خود استفاده کنیم

قبل از راه اندازی نوت بوک آموزشی Colab، ابتدا API مدیریت مدل Firebase را فعال می کنیم تا Colab بتواند مدل آموزش دیده را در کنسول Firebase ما مستقر کند.

Firebase Model Management API را فعال کنید

یک سطل برای ذخیره مدل های ML خود ایجاد کنید

در کنسول Firebase خود، به Storage بروید و روی شروع کار کلیک کنید. fbbea78f0eb3dc9f.png

گفتگو را دنبال کنید تا سطل خود را راه اندازی کنید.

19517c0d6d2aa14d.png

Firebase ML API را فعال کنید

به صفحه Firebase ML API در Google Cloud Console بروید و روی Enable کلیک کنید.

از نوت بوک کولب برای آموزش و استقرار مدل استفاده کنید

دفترچه یادداشت colab را با استفاده از لینک زیر باز کنید و مراحل داخل را تکمیل کنید. پس از اتمام مراحل در نوت بوک Colab، یک فایل مدل TF lite در کنسول Firebase مستقر شده است که می توانیم آن را با برنامه خود همگام سازی کنیم.

در کولب باز کنید

12. مدل را در برنامه خود دانلود کنید

در این مرحله، برنامه خود را تغییر می‌دهیم تا مدلی را که به تازگی آموزش داده‌ایم از Firebase Machine Learning بارگیری کند.

وابستگی Firebase ML را اضافه کنید

برای استفاده از مدل‌های یادگیری ماشین Firebase در برنامه خود، وابستگی زیر مورد نیاز است. قبلاً باید اضافه شود (تأیید شود).

app/build.grade.kts

implementation("com.google.firebase:firebase-ml-modeldownloader:24.1.2")

مدل را با Firebase Model Manager API دانلود کنید

کد زیر را در RecommendationClient.kt کپی کنید تا شرایطی را که در آن دانلود مدل انجام می شود تنظیم کنید و یک کار دانلود برای همگام سازی مدل راه دور با برنامه ما ایجاد کنید.

RecommendationClient.kt

    private fun downloadModel(modelName: String) {
        val conditions = CustomModelDownloadConditions.Builder()
            .requireWifi()
            .build()
        FirebaseModelDownloader.getInstance()
            .getModel(modelName, DownloadType.LOCAL_MODEL, conditions)
            .addOnCompleteListener {
                if (!it.isSuccessful) {
                    showToast(context, "Failed to get model file.")
                } else {
                    showToast(context, "Downloaded remote model: $modelName")
                    GlobalScope.launch { initializeInterpreter(it.result) }
                }
            }
            .addOnFailureListener {
                showToast(context, "Model download failed for recommendations, please check your connection.")
            }
    }

13. مدل پیشنهادی Tensorflow Lite را در برنامه خود ادغام کنید

زمان اجرا Tensorflow Lite به شما امکان می دهد از مدل خود در برنامه برای ایجاد توصیه ها استفاده کنید. در مرحله قبل، یک مفسر TFlite را با فایل مدلی که دانلود کردیم، مقداردهی کردیم. در این مرحله، ابتدا یک فرهنگ لغت و برچسب‌هایی را بارگذاری می‌کنیم تا مدل خود را در مرحله استنتاج همراهی کنند، سپس پیش پردازش را برای تولید ورودی‌ها به مدل خود اضافه می‌کنیم و پس پردازش را اضافه می‌کنیم که در آن نتایج را از استنتاج خود استخراج می‌کنیم. .

بارگذاری فرهنگ لغت و برچسب ها

برچسب‌های مورد استفاده برای تولید نامزدهای پیشنهادی توسط مدل توصیه‌ها در فایل sorted_movie_vocab.json در پوشه res/assets فهرست شده‌اند. کد زیر را برای بارگذاری این نامزدها کپی کنید.

RecommendationClient.kt

    /** Load recommendation candidate list.  */
    private suspend fun loadCandidateList() {
        return withContext(Dispatchers.IO) {
            val collection = MovieRepository.getInstance(context).getContent()
            for (item in collection) {
                candidates[item.id] = item
            }
            Log.v(TAG, "Candidate list loaded.")
        }
    }

اجرای پیش پردازش

در مرحله پیش پردازش، شکل داده های ورودی را تغییر می دهیم تا با آنچه مدل ما انتظار دارد مطابقت داشته باشد. در اینجا، اگر قبلاً تعداد زیادی لایک کاربر ایجاد نکرده باشیم، طول ورودی را با یک مقدار مکان نگهدار اضافه می کنیم. کد زیر را کپی کنید:

RecommendationClient.kt

    /** Given a list of selected items, preprocess to get tflite input.  */
    @Synchronized
    private suspend fun preprocess(selectedMovies: List<Movie>): IntArray {
        return withContext(Dispatchers.Default) {
            val inputContext = IntArray(config.inputLength)
            for (i in 0 until config.inputLength) {
                if (i < selectedMovies.size) {
                    val (id) = selectedMovies[i]
                    inputContext[i] = id
                } else {
                    // Padding input.
                    inputContext[i] = config.pad
                }
            }
            inputContext
        }
    }


مترجم را برای تولید توصیه ها اجرا کنید

در اینجا ما از مدلی که در مرحله قبل دانلود کرده بودیم برای اجرای استنتاج در ورودی از پیش پردازش شده خود استفاده می کنیم. ما نوع ورودی و خروجی را برای مدل خود تنظیم می کنیم و استنتاج را برای تولید توصیه های فیلم خود اجرا می کنیم. کد زیر را در برنامه خود کپی کنید.

RecommendationClient.kt

    /** Given a list of selected items, and returns the recommendation results.  */
    @Synchronized
    suspend fun recommend(selectedMovies: List<Movie>): List<Result> {
        return withContext(Dispatchers.Default) {
            val inputs = arrayOf<Any>(preprocess(selectedMovies))

            // Run inference.
            val outputIds = IntArray(config.outputLength)
            val confidences = FloatArray(config.outputLength)
            val outputs: MutableMap<Int, Any> = HashMap()
            outputs[config.outputIdsIndex] = outputIds
            outputs[config.outputScoresIndex] = confidences
            tflite?.let {
                it.runForMultipleInputsOutputs(inputs, outputs)
                postprocess(outputIds, confidences, selectedMovies)
            } ?: run {
                Log.e(TAG, "No tflite interpreter loaded")
                emptyList()
            }
        }
    }



اجرای پس پردازش

در نهایت، در این مرحله، خروجی مدل خود را پس پردازش می کنیم، نتایج را با بالاترین اطمینان انتخاب می کنیم و مقادیر موجود را حذف می کنیم (فیلم هایی که کاربر قبلاً دوست داشته است). کد زیر را در برنامه خود کپی کنید.

RecommendationClient.kt

    /** Postprocess to gets results from tflite inference.  */
    @Synchronized
    private suspend fun postprocess(
        outputIds: IntArray, confidences: FloatArray, selectedMovies: List<Movie>
    ): List<Result> {
        return withContext(Dispatchers.Default) {
            val results = ArrayList<Result>()

            // Add recommendation results. Filter null or contained items.
            for (i in outputIds.indices) {
                if (results.size >= config.topK) {
                    Log.v(TAG, String.format("Selected top K: %d. Ignore the rest.", config.topK))
                    break
                }
                val id = outputIds[i]
                val item = candidates[id]
                if (item == null) {
                    Log.v(TAG, String.format("Inference output[%d]. Id: %s is null", i, id))
                    continue
                }
                if (selectedMovies.contains(item)) {
                    Log.v(TAG, String.format("Inference output[%d]. Id: %s is contained", i, id))
                    continue
                }
                val result = Result(
                    id, item,
                    confidences[i]
                )
                results.add(result)
                Log.v(TAG, String.format("Inference output[%d]. Result: %s", i, result))
            }
            results
        }
    }


برنامه خود را تست کنید!

برنامه خود را دوباره اجرا کنید. همانطور که چند فیلم را انتخاب می کنید، باید به طور خودکار مدل جدید را دانلود کرده و شروع به تولید توصیه کند!

14. تبریک می گویم!

شما با استفاده از TensorFlow Lite و Firebase یک ویژگی توصیه در برنامه خود ایجاد کرده اید. توجه داشته باشید که تکنیک ها و خط لوله نشان داده شده در این کد لبه را می توان تعمیم داد و برای ارائه انواع دیگر توصیه ها نیز استفاده کرد.

آنچه را پوشش داده ایم

  • Firebase ML
  • تجزیه و تحلیل Firebase
  • رویدادهای تجزیه و تحلیل را به BigQuery صادر کنید
  • رویدادهای تجزیه و تحلیل پیش پردازش
  • توصیه های قطار مدل TensorFlow
  • صادر کردن مدل و استقرار به کنسول Firebase
  • پیشنهادهای فیلم را در یک برنامه ارائه دهید

مراحل بعدی

  • توصیه های Firebase ML را در برنامه خود پیاده کنید.

بیشتر بدانید

سوالی دارید؟

گزارش مسائل