TensorFlow Lite ve Firebase ile uygulamanıza Öneriler ekleyin - Android Codelab

1. Genel Bakış

TensorFlow Lite ve Firebase codelab ile ilgili Öneriler'e hoş geldiniz. Bu codelab'de, uygulamanıza bir öneri modeli dağıtmak için TensorFlow Lite ve Firebase'i nasıl kullanacağınızı öğreneceksiniz. Bu codelab, bu TensorFlow Lite örneğini temel almaktadır.

Öneriler, uygulamaların her kullanıcıya en alakalı içeriği akıllıca sunmak için makine öğrenimini kullanmasına olanak tanır. Çok sayıda başka kullanıcının toplu davranışı üzerine eğitilmiş bir model kullanarak, kullanıcının gelecekte etkileşimde bulunmak isteyebileceği uygulama içeriğini önermek için geçmiş kullanıcı davranışını hesaba katarlar.

Bu eğitimde, Firebase Analytics ile uygulamanızın kullanıcılarından nasıl veri elde edileceği, bu verilerden öneriler için bir makine öğrenimi modelinin nasıl oluşturulacağı ve daha sonra çıkarım yapmak ve öneriler almak için bu modeli bir Android uygulamasında nasıl kullanacağınız gösterilmektedir. Özellikle önerilerimiz, kullanıcının daha önce beğendiği filmlerin listesi göz önüne alındığında, kullanıcının büyük olasılıkla hangi filmleri izleyeceğini önerecektir.

Ne öğreneceksin

  • Kullanıcı davranışı verilerini toplamak için Firebase Analytics'i bir Android uygulamasına entegre edin
  • Bu verileri Google Big Query'ye aktarın
  • Verileri önceden işleyin ve bir TF Lite öneri modeli eğitin
  • TF Lite modelini Firebase ML'ye dağıtın ve ona uygulamanızdan erişin
  • Kullanıcılara öneriler önermek için modeli kullanarak cihaz çıkarımı üzerinde çalıştırın

İhtiyacınız olan şey

  • En son Android Studio sürümü.
  • Basit kod.
  • Android 7+ ve Google Play hizmetleri 9.8 veya sonraki sürümlere sahip bir test cihazı ya da Google Play hizmetleri 9.8 veya sonraki sürümlere sahip bir Emülatör
  • Bir cihaz kullanılıyorsa, bir bağlantı kablosu.

Bu öğreticiyi nasıl kullanacaksınız?

Yalnızca baştan sona okuyun Okuyun ve alıştırmaları tamamlayın

Android uygulamaları oluşturma deneyiminizi nasıl değerlendirirsiniz?

Acemi Orta seviye Yetkin

2. Örnek kodu alın

GitHub deposunu komut satırından kopyalayın.

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

3. Başlangıç ​​uygulamasını içe aktarın

Android Studio'dan codelab-recommendations-android dizinini seçin ( android_studio_folder.png ) örnek kod indirmesinden ( Dosya > > .../codelab-recommendations-android/start).

Artık başlangıç ​​projenizi Android Studio'da açmalısınız.

4. Firebase konsol projesi oluşturun

Yeni bir proje oluştur

  1. Firebase konsoluna gidin.
  2. Proje ekle'yi seçin (veya ilk projeyse proje oluşturun ).
  3. Bir Proje adı seçin veya girin ve Devam'a tıklayın.
  4. "Bu proje için Google Analytics'i etkinleştir" seçeneğinin etkinleştirildiğinden emin olun.
  5. Firebase konsolunda kalan kurulum adımlarını izleyin ve ardından Proje oluştur'u (veya mevcut bir Google projesini kullanıyorsanız Firebase Ekle'yi) tıklayın.

5. Firebase'i ekleyin

  1. Kurulum iş akışını başlatmak için yeni projenizin genel bakış ekranından Android simgesine tıklayın.
  2. Codelab'in paket adını girin: com.google.firebase.codelabs.recommendations
  3. Uygulamayı kaydet seçeneğini seçin.

Google-services.json dosyasını uygulamanıza ekleyin

Paket adını ekledikten ve Kaydol'u seçtikten sonra, Firebase Android yapılandırma dosyanızı almak için google-services.json'u indir'e tıklayın ve ardından google-services.json dosyasını projenizdeki app dizinine kopyalayın. Dosya indirildikten sonra konsolda gösterilen sonraki adımları atlayabilirsiniz (bu adımlar sizin için build-android-start projesinde zaten yapılmıştır).

Uygulamanıza Google hizmetleri eklentisini ekleyin

Google-services eklentisi, uygulamanızı Firebase'i kullanacak şekilde yapılandırmak için google-services.json dosyasını kullanır. Projedeki build.gradle.kts dosyalarına aşağıdaki satırların zaten eklenmiş olması gerekir (onaylamak için kontrol edin):

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
}

Projenizi gradle dosyalarıyla senkronize edin

Uygulamanızda tüm bağımlılıkların mevcut olduğundan emin olmak için bu noktada projenizi gradle dosyalarıyla senkronize etmelisiniz. Android Studio araç çubuğundan Dosya > Projeyi Gradle Dosyalarıyla Eşitle'yi seçin.

6. Başlangıç ​​uygulamasını çalıştırın

Artık projeyi Android Studio'ya aktardığınıza ve google-services eklentisini JSON dosyanızla yapılandırdığınıza göre, uygulamayı ilk kez çalıştırmaya hazırsınız. Android cihazınızı bağlayın ve Çalıştır'a tıklayın ( yürüt.png )Android Studio araç çubuğunda.

Uygulama cihazınızda başlatılmalıdır. Bu noktada, film listesi içeren bir sekme, Beğenilen filmler sekmesi ve Öneriler sekmesini gösteren çalışan bir uygulama görebilirsiniz. Film listesindeki bir filmi beğendiğiniz listeye eklemek için üzerine tıklayabilirsiniz. Codelab'in kalan adımlarını tamamladıktan sonra Öneriler sekmesinde film önerileri oluşturabileceğiz.

7. Firebase Analytics'i uygulamaya ekleyin

Bu adımda, kullanıcı davranışı verilerini (bu durumda kullanıcının hangi filmleri beğendiğini) günlüğe kaydetmek için uygulamaya Firebase Analytics ekleyeceksiniz. Bu veriler, öneri modelini eğitmek için gelecekteki adımlarda toplu olarak kullanılacaktır.

Firebase Malzeme Listesi ve Analytics bağımlılığı ekleyin

Firebase Analytics'i uygulamanıza eklemek için aşağıdaki bağımlılıklar gereklidir. Bunların zaten app/build.gradle.kts dosyasına dahil edilmiş olması gerekir (doğrulayın).

app/build.grade.kts

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

Uygulamada Firebase Analytics'i kurun

LikedMoviesViewModel, kullanıcının beğendiği filmleri depolamak için işlevler içerir. Kullanıcı yeni bir filmi her beğendiğinde, bunu kaydetmek için bir analiz günlüğü etkinliği de göndermek istiyoruz.

Kullanıcı bir filmdeki gibi tıkladığında bir analiz olayı kaydetmek için onMovieLiked işlevini aşağıdaki kodla ekleyin.

BeğenilenMoviesViewModel.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())
    }
       
}

Bir film kullanıcının Beğenilenler listesine eklendiğinde bir Analytics etkinliğini günlüğe kaydetmek için aşağıdaki alanı ve işlevi ekleyin.

BeğenilenMoviesViewModel.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 entegrasyonunuzu test edin

Bu adımda uygulamada Analytics etkinlikleri oluşturacağız ve bunların Firebase Konsoluna gönderildiğini doğrulayacağız.

Analytics Hata Ayıklama Günlüğünü Etkinleştir

Firebase Analytics, kullanıcının pil ömrünü en üst düzeye çıkarmak için tasarlanmıştır ve cihazdaki etkinlikleri toplu olarak toplayıp bunları yalnızca ara sıra Firebase'e gönderir. Hata ayıklama amacıyla, kabukta aşağıdaki komutu çalıştırarak olayları gerçek zamanlı olarak günlüğe kaydedilirken görmek için bu davranışı devre dışı bırakabiliriz.

terminal

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

Analytics etkinliklerinin oluşturulduğunu doğrulama

  1. Android stüdyosunda, uygulamanızdaki günlük kaydını incelemek için Logcat penceresini açın.
  2. Logcat filtresini "Logging olayı" dizesine ayarlayın.
  3. Uygulamada bir filmi her beğendiğinizde "select_item" Analytics etkinliklerinin yayınlandığını doğrulayın.

Bu noktada Firebase Analytics'i uygulamanıza başarıyla entegre ettiniz. Kullanıcılar uygulamanızı kullandıkça ve filmleri beğendikçe, beğenileri toplu olarak günlüğe kaydedilecektir. Bu toplu verileri bu codelab'in geri kalanında öneri modelimizi eğitmek için kullanacağız. Aşağıdaki, Logcat'te gördüğünüz Analytics etkinliklerinin Firebase konsoluna da akışını görmek için isteğe bağlı bir adımdır. Bir sonraki sayfaya atlamaktan çekinmeyin.

İsteğe bağlı: Firebase Konsolunda Analytics etkinliklerini onaylayın

  1. Firebase konsoluna gidin.
  2. Analytics altında DebugView'ı seçin
  3. Android Studio'da uygulamayı başlatmak ve bazı filmleri Beğenilenler listenize eklemek için Çalıştır'ı seçin.
  4. Firebase konsolunun DebugView'ında, uygulamaya film eklerken bu olayların günlüğe kaydedildiğini doğrulayın.

9. Analytics verilerini Big Query'ye aktarın

Big Query, büyük miktarda veriyi incelemenize ve işlemenize olanak tanıyan bir Google Cloud ürünüdür. Bu adımda, uygulamanız tarafından oluşturulan Analytics verilerinin otomatik olarak Big Query'ye aktarılması için Firebase Console projenizi Big Query'ye bağlayacaksınız.

Big Query dışa aktarımını etkinleştir

  1. Firebase konsoluna gidin.
  2. Projeye Genel Bakış'ın yanındaki Ayarlar dişli simgesini seçin ve ardından Proje ayarları'nı seçin
  3. Entegrasyonlar sekmesini seçin.
  4. BigQuery bloğunun içinde Bağlantı'yı (veya Yönet'i ) seçin.
  5. Firebase'i BigQuery'ye Bağlama Hakkında adımında İleri'yi seçin.
  6. Entegrasyonu yapılandır bölümünün altında, Google Analytics verilerinin gönderilmesini etkinleştirmek için anahtarı tıklayın ve BigQuery'ye Bağla 'yı seçin.

Artık Firebase konsol projenizin Firebase Analytics etkinlik verilerini otomatik olarak Big Query'ye göndermesini etkinleştirdiniz. Bu, başka bir etkileşim gerekmeden otomatik olarak gerçekleşir ancak BigQuery'de analiz veri kümesini oluşturan ilk dışa aktarma 24 saat boyunca gerçekleşmeyebilir. Veri kümesi oluşturulduktan sonra Firebase, sürekli olarak yeni Analytics etkinliklerini Big Query'ye gün içi tabloya aktarır ve geçmiş günlere ait etkinlikleri etkinlik tablosunda gruplandırır.

Bir öneri modelinin eğitilmesi çok fazla veri gerektirir. Halihazırda büyük miktarda veri üreten bir uygulamamız olmadığından bir sonraki adımda bu eğitimin geri kalanında kullanmak üzere örnek bir veri kümesini BigQuery'ye aktaracağız.

10. Model eğitim verilerini elde etmek için BigQuery'yi kullanın

Artık Firebase Konsolumuzu BigQuery'ye aktarmak üzere bağladığımıza göre, uygulama analizi etkinlik verilerimiz bir süre sonra otomatik olarak BigQuery konsolunda görünecektir. Bu eğitimin amaçları doğrultusunda bazı başlangıç ​​verileri elde etmek için bu adımda, öneri modelimizi eğitmek üzere kullanmak üzere mevcut bir örnek veri kümesini BigQuery konsolunuza aktaracağız.

Örnek veri kümesini BigQuery'ye aktarın

  1. Google bulut konsolundaki BigQuery kontrol paneline gidin.
  2. Menüden projenizin adını seçin.
  3. Ayrıntıları görmek için BigQuery sol gezinme panelinin alt kısmından proje adınızı seçin.
  4. Veri kümesi oluşturma panelini açmak için Veri kümesi oluştur'u seçin.
  5. Veri Kümesi Kimliği için 'firebase_recommendations_dataset' girin ve Veri kümesi oluştur ' u seçin.
  6. Yeni veri kümesi soldaki menüde proje adının altında görünecektir. Tıkla.
  7. Tablo oluşturma panelini açmak için Tablo oluştur'u seçin.
  8. Tablo oluşturmak için 'Google Bulut Depolama'yı seçin.
  9. GCS paketinden dosya seçin alanına 'gs://firebase-recommendations/recommendations-test/formatted_data_filtered.txt' yazın.
  10. Dosya biçimi açılır menüsünde 'JSONL'yi seçin.
  11. Tablo adı için 'recommendations_table' değerini girin.
  12. Şema > Otomatik algılama > Şema ve giriş parametreleri altındaki kutuyu işaretleyin
  13. Tablo oluştur'u seçin

Örnek veri kümesini keşfedin

Bu noktada isteğe bağlı olarak şemayı inceleyebilir ve bu veri kümesinin ön izlemesini yapabilirsiniz.

  1. İçerdiği tabloları genişletmek için soldaki menüden firebase-recommendations-dataset'i seçin.
  2. Tablo şemasını görüntülemek için öneriler tablosu tablosunu seçin.
  3. Bu tablonun içerdiği gerçek Analytics etkinlik verilerini görmek için Önizleme'yi seçin.

Hizmet hesabı kimlik bilgileri oluşturun

Artık BigQuery verilerimize erişmek ve yüklemek için bir sonraki adımda Colab ortamında kullanabileceğimiz Google Cloud console projemizde hizmet hesabı kimlik bilgileri oluşturacağız.

  1. Google Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun.
  2. BigQuery ve BigQuery Storage API API'lerini etkinleştirin. < buraya tıklayın >
  3. Hizmet Hesabı Anahtarı Oluştur sayfasına gidin.
  4. Hizmet hesabı listesinden Yeni hizmet hesabı seçeneğini seçin.
  5. Hizmet hesabı adı alanına bir ad girin.
  6. Rol listesinden Proje > Sahip'i seçin.
  7. Oluştur'u tıklayın. Bilgisayarınıza indirilen anahtarlarınızı içeren bir JSON dosyası.

Bir sonraki adımda bu verileri ön işlemek ve öneri modelimizi eğitmek için Google Colab'ı kullanacağız.

11. Verileri ön işleme ve öneri modelini eğitme

Bu adımda aşağıdaki adımları gerçekleştirmek için Colab not defterini kullanacağız:

  1. BigQuery verilerini Colab not defterine aktarın
  2. Model eğitimine hazırlamak için verileri ön işleme tabi tutun
  3. Öneri modelini analiz verileri üzerinde eğitin
  4. modeli TF lite modeli olarak dışa aktarın
  5. Uygulamamızda kullanabilmemiz için modeli Firebase Konsoluna dağıtın

Colab eğitim not defterini başlatmadan önce, Colab'ın eğitilen modeli Firebase konsolumuza dağıtabilmesi için öncelikle Firebase Model Yönetimi API'sini etkinleştireceğiz.

Firebase Model Yönetimi API'sini etkinleştirin

ML modellerinizi depolamak için bir paket oluşturun

Firebase Konsolunuzda Depolama'ya gidin ve Başlayın'ı tıklayın. fbbea78f0eb3dc9f.png

Kovanızın kurulumunu yapmak için diyaloğu takip edin.

19517c0d6d2aa14d.png

Firebase ML API'yi etkinleştirin

Google Cloud Console'da Firebase ML API sayfasına gidin ve Etkinleştir'i tıklayın.

Modeli eğitmek ve dağıtmak için Colab not defterini kullanın

Aşağıdaki bağlantıyı kullanarak colab not defterini açın ve içindeki adımları tamamlayın. Colab not defterindeki adımları tamamladıktan sonra, Firebase konsoluna dağıtılan ve uygulamamızla senkronize edebileceğimiz bir TF lite model dosyasına sahip olacaksınız.

Colab'da aç

12. Uygulamanızdaki modeli indirin

Bu adımda, Firebase Machine Learning'den yeni eğittiğimiz modeli indirmek için uygulamamızı değiştireceğiz.

Firebase ML bağımlılığı ekleyin

Firebase Machine Learning modellerini uygulamanızda kullanabilmeniz için aşağıdaki bağımlılık gereklidir. Zaten eklenmiş olmalıdır (doğrulayın).

app/build.grade.kts

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

Modeli Firebase Model Manager API'si ile indirin

Model indirmenin gerçekleşeceği koşulları ayarlamak ve uzak modeli uygulamamızla senkronize etmek için bir indirme görevi oluşturmak için aşağıdaki kodu RecommendationClient.kt'ye kopyalayın.

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 öneri modelini uygulamanıza entegre edin

Tensorflow Lite çalışma zamanı, öneriler oluşturmak için uygulamadaki modelinizi kullanmanıza olanak tanır. Önceki adımda indirdiğimiz model dosyasıyla bir TFlite yorumlayıcısını başlattık. Bu adımda, öncelikle çıkarım adımında modelimize eşlik edecek bir sözlük ve etiketler yükleyeceğiz, ardından modelimize girdiler oluşturmak için ön işleme ve çıkarımlarımızdan sonuçları çıkaracağımız son işleme ekleyeceğiz. .

Sözlüğü ve Etiketleri Yükle

Öneri modeline göre öneri adaylarını oluşturmak için kullanılan etiketler res/assets klasöründeki sorted_movie_vocab.json dosyasında listelenir. Bu adayları yüklemek için aşağıdaki kodu kopyalayın.

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.")
        }
    }

Ön İşlemeyi Uygulayın

Ön işleme adımında, girdi verilerinin biçimini modelimizin beklediğiyle eşleşecek şekilde değiştiririz. Burada, eğer halihazırda çok fazla kullanıcı beğenisi oluşturmamışsak, giriş uzunluğunu bir yer tutucu değerle doldururuz. Aşağıdaki kodu kopyalayın:

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
        }
    }


Öneriler oluşturmak için tercümanı çalıştırın

Burada, önceden işlenmiş girdimiz üzerinde çıkarım yapmak için önceki adımda indirdiğimiz modeli kullanırız. Modelimiz için giriş ve çıkış türünü belirliyoruz ve film önerilerimizi oluşturmak için çıkarım yapıyoruz. Aşağıdaki kodu uygulamanıza kopyalayın.

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()
            }
        }
    }



İşlem Sonrasını Uygulayın

Son olarak, bu adımda, modelimizin çıktısını son işleme tabi tutuyoruz, en yüksek güvene sahip sonuçları seçiyoruz ve içerilen değerleri (kullanıcının zaten beğendiği filmler) kaldırıyoruz. Aşağıdaki kodu uygulamanıza kopyalayın.

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
        }
    }


Uygulamanızı test edin!

Uygulamanızı yeniden çalıştırın. Birkaç film seçtiğinizde, yeni modeli otomatik olarak indirmeli ve öneriler oluşturmaya başlamalıdır!

14. Tebrikler!

TensorFlow Lite ve Firebase'i kullanarak uygulamanıza bir öneri özelliği eklediniz. Bu codelab'de gösterilen tekniklerin ve ardışık düzenin genelleştirilebileceğini ve başka türdeki önerilere hizmet etmek için de kullanılabileceğini unutmayın.

Neleri ele aldık?

  • Firebase ML
  • Firebase Analizi
  • Analytics etkinliklerini BigQuery'ye aktarın
  • Analitik olaylarını ön işleme
  • TensorFlow modelini eğitme önerileri
  • Modeli dışa aktarın ve Firebase Konsoluna dağıtın
  • Bir uygulamada film önerileri sunma

Sonraki adımlar

  • Firebase ML önerilerini uygulamanıza uygulayın.

Daha fazla bilgi edin

Bir Sorunuz mu var?

Sorunları Bildir