Firebase'i TFLite destekli Android Uygulamanıza ekleyin

1. Genel Bakış

cd824ecfd05a2822.png

Firebase ML, modelinizi kablosuz olarak dağıtmanıza olanak tanır. Bu, uygulama boyutunu küçük tutmanıza ve ML modelini yalnızca gerektiğinde indirmenize, birden fazla modelle deneme yapmanıza veya uygulamanın tamamını yeniden yayınlamanıza gerek kalmadan ML modelinizi güncellemenize olanak tanır.

Bu codelab'de, statik bir TFLite modeli kullanan bir Android uygulamasını, Firebase'den dinamik olarak sunulan bir modeli kullanan bir uygulamaya dönüştüreceksiniz.

Ne öğreneceksin

  • TFLite modellerini Firebase ML'ye dağıtın ve bunlara uygulamanızdan erişin
  • Firebase Analytics ile model doğruluğunu ölçmek için kullanıcı geri bildirimlerini izleyin
  • Firebase Performance aracılığıyla profil modeli performansı
  • Remote Config aracılığıyla birden fazla dağıtılan modelden hangisinin yükleneceğini seçin
  • Firebase A/B Testi aracılığıyla farklı modellerle denemeler yapın

İhtiyacınız olan şey

  • En son Android Studio sürümü.
  • Basit kod.
  • Android 5.0+ 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-digitclassifier-android.git

Git yüklü değilse örnek projeyi GitHub sayfasından veya bu bağlantıya tıklayarak da indirebilirsiniz.

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

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

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

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

Artık projeyi Android Studio'ya aktardığı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 bir rakam çizmeye çalışırsanız uygulamanın onu tanıyabilmesi gerekir.

6e36e1b947b395f2.png

5. Firebase konsol projesi oluşturun

Firebase'i projeye ekleyin

  1. Firebase konsoluna gidin.
  2. Proje ekle'yi seçin.
  3. Bir Proje adı seçin veya girin.
  4. 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.

6. 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: org.tensorflow.lite.examples.digitclassifier

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

Paket adını kaydettikten ve İleri'yi 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. Projenizin app dizinindeki build.gradle.kts dosyasının üst kısmındaki plugins bloğuna aşağıdaki satırı ekleyin:

app/build.gradle.kts

id("com.google.gms.google-services")

Daha sonra projedeki build.gradle.kts dosyanızın plugins bloğuna aşağıdaki satırı ekleyin:

proje/build.gradle.kts

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.

7. Uygulamayı Firebase ile çalıştırın

google-services eklentisini JSON dosyanızla yapılandırdığınıza göre artık uygulamayı Firebase ile ç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 uygulamanız yine de başarıyla oluşturulmalıdır.

8. Firebase ML'ye bir model dağıtın

Bir modeli Firebase ML'ye dağıtmak iki ana nedenden dolayı faydalıdır:

  1. Uygulama yükleme boyutunu küçük tutabilir ve modeli yalnızca ihtiyaç duyulduğunda indirebiliriz
  2. Model düzenli olarak ve uygulamanın tamamından farklı bir sürüm döngüsüyle güncellenebilir

Uygulamamızdaki statik modeli Firebase'den dinamik olarak indirilen bir modelle değiştirebilmemiz için onu Firebase ML'ye dağıtmamız gerekiyor. Model, konsol aracılığıyla veya Firebase Admin SDK kullanılarak programlı olarak dağıtılabilir. Bu adımda konsol üzerinden dağıtım yapacağız.

İşleri basit tutmak için halihazırda uygulamamızda bulunan TensorFlow Lite modelini kullanacağız. Öncelikle Firebase Konsolunu açın ve sol gezinme panelinde Makine Öğrenimi'ne tıklayın. İlk kez açıyorsanız 'Başlayın'ı tıklayın. Daha sonra "Özel" seçeneğine gidin ve "Özel model ekle" düğmesine tıklayın.

İstendiğinde modele mnist_v1 gibi açıklayıcı bir ad verin ve dosyayı codelab proje dizininden start/app/src/main/assets/mnist.tflite altına yükleyin. Daha sonra bu TF Lite model dosyasını Android projesinden silebilirsiniz.

3c3c50e6ef12b3b.png

9. Modeli Firebase ML'den indirin

TFLite modelleri nispeten büyüyebileceğinden, uzak modeli Firebase'den uygulamanıza ne zaman indireceğinizi seçmek zor olabilir. İdeal olarak, uygulama başlatıldığında modeli hemen yüklemekten kaçınmak istiyoruz, çünkü modelimiz yalnızca bir özellik için kullanılıyorsa ve kullanıcı bu özelliği asla kullanmıyorsa, sebepsiz yere önemli miktarda veri indirmiş olacağız. Ayrıca sadece wifiye bağlanıldığında modellerin getirilmesi gibi indirme seçeneklerini de ayarlayabiliriz. Modelin ağ bağlantısı olmadan da kullanılabilir olduğundan emin olmak istiyorsanız, onu uygulama olmadan da yedek olarak paketlemeniz önemlidir.

Basitlik adına, varsayılan paketli modeli kaldıracağız ve uygulama başlatıldığında her zaman Firebase'den bir model indireceğiz. Bu şekilde rakam tanımayı çalıştırırken çıkarımın Firebase'den sağlanan modelle çalıştığından emin olabilirsiniz.

app/build.gradle.kts dosyasına Firebase Machine Learning bağımlılığını ekleyin

app/build.gradle.kts

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

Ardından modeli Firebase'den indirmek için mantık ekleyin.

digitClassifier.initialize(loadModelFile()) downloadModel("mnist_v1") ile değiştireceğiz ve bu yöntemi uygulayacağız.

MainActivity.kt

  private fun downloadModel(modelName: String): Task<CustomModel> {
    val conditions = CustomModelDownloadConditions.Builder()
    .requireWifi()
    .build()
    return FirebaseModelDownloader.getInstance()
        .getModel(modelName, DownloadType.LOCAL_MODEL, conditions)
        .addOnCompleteListener {
          val model = it.result
          if (model == null) {
            showToast("Failed to get model file.")
          } else {
            showToast("Downloaded remote model: $modelName")
            digitClassifier.initialize(model)
          }
        }
      .addOnFailureListener {
        showToast("Model download failed for $modelName, please check your connection.")
      }
  }

Uygulamanızı yeniden çalıştırın ve rakam sınıflandırıcıya bir rakam çizin. İndirme işlemi bittiğinde uzak modelin indirildiğini belirten bir Toast mesajı ve yeni modelinizin kullanıldığını belirten bir günlük görmelisiniz.

10. Model doğruluğunu ölçmek için kullanıcı geri bildirimlerini ve dönüşümlerini izleyin

Firebase için Google Analytics, kullanıcıların uygulamanızda nasıl ilerlediğini, nerede başarılı olduklarını ve nerede takılıp geri döndüklerini anlamanız için bir yol sağlar. Ayrıca uygulamanızın en çok kullanılan kısımlarını anlamak için de kullanılabilir.

Model tahminlerine ilişkin kullanıcı geri bildirimlerini takip ederek modelin doğruluğunu ölçeceğiz. Kullanıcının "EVET"i tıklaması, tahminin doğru olduğunu gösterecektir.

Modelimizin doğruluğunu takip etmek için bir Analytics olayı kaydedebiliriz. Öncelikle Analytics'i projede kullanılmadan önce bağımlılığa eklemeliyiz:

Firebase Analytics bağımlılığı ekleyin

app/build.gradle.kts

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

Olayları Günlüğe Kaydet

Daha sonra onCreate işlevinde onclick dinleyicisini, correct_inference olayını Firebase'e kaydedecek şekilde ayarlayacağız.

MainActivity.kt (onCreate)

// Setup YES button
yesButton?.setOnClickListener {
  Firebase.analytics.logEvent("correct_inference", null)
}

Uygulamayı tekrar çalıştırın ve bir rakam çizin. Çıkarımın doğru olduğuna dair geri bildirim göndermek için birkaç kez "Evet" düğmesine basın.

Hata ayıklama analizi

Genellikle uygulamanız tarafından günlüğe kaydedilen etkinlikler yaklaşık bir saatlik bir süre boyunca bir araya toplanır ve birlikte yüklenir. Bu yaklaşım, son kullanıcıların cihazlarının pilini korur ve ağ veri kullanımını azaltır. Ancak analiz uygulamanızı doğrulamak amacıyla (ve analizlerinizi DebugView raporunda görüntülemek için), etkinlikleri minimum gecikmeyle yüklemek üzere geliştirme cihazınızda Hata Ayıklama modunu etkinleştirebilirsiniz.

Bir Android cihazda Analytics Hata Ayıklama modunu etkinleştirmek için aşağıdaki komutları yürütün:

adb shell setprop debug.firebase.analytics.app org.tensorflow.lite.examples.digitclassifier

Uygulamayı tekrar çalıştırın ve bir rakam çizin. Çıkarımın doğru olduğuna dair geri bildirim göndermek için birkaç kez "Evet" düğmesine basın. Artık Firebase konsolundaki hata ayıklama görünümü aracılığıyla günlük etkinliklerini neredeyse gerçek zamanlı olarak görüntüleyebilirsiniz. Sol gezinme çubuğundan Analytics > DebugView'a tıklayın.

5276199a086721fd.png

11. Modelin Performansını Analiz Edin

Firebase Performance Monitoring, iOS, Android ve web uygulamalarınızın performans özellikleri hakkında fikir edinmenize yardımcı olan bir hizmettir.

Uygulamanızdan performans verilerini toplamak için Performans İzleme SDK'sını kullanırsınız ve ardından bu verileri Firebase konsolunda inceleyip analiz edersiniz. Performans İzleme, uygulamanızın performansının nerede ve ne zaman iyileştirilebileceğini anlamanıza yardımcı olur, böylece bu bilgileri performans sorunlarını düzeltmek için kullanabilirsiniz.

Burada çıkarım ve indirme çevresine mükemmel izler ekliyoruz

Bu önemlidir çünkü derin öğrenmede kullanılan daha büyük modellerin daha doğru olma potansiyeli vardır, ancak yanıt vermeleri daha uzun sürebilir. Deneyimimizde doğruluk ve hız arasında doğru dengeyi bulmaya çalışıyoruz.

Firebase Performans bağımlılığı ekleyin

proje/build.gradle.kts

plugins {
  // ...

  // Add the dependency for the Performance Monitoring plugin
  id("com.google.firebase.firebase-perf") version "1.4.2" apply false
}

app/build.gradle.kts

plugins {
  // ...

  // Add the Performance Monitoring plugin
  id("com.google.firebase.firebase-perf")
}

// ...

dependencies {
  // ...

  // Add the dependency for the Performance Monitoring library
  implementation("com.google.firebase:firebase-perf")
}

Özel İzler Ekle

setupDigitClassifier() işlevinde yeni bir downloadTrace oluşturun ve modeli indirmeden hemen önce başlatın. Daha sonra izlemeyi durduran bir başarı dinleyicisi ekleyin.

classifyDrawing() işlevinde yeni bir classifyTrace oluşturun ve onu sınıflandırmadan hemen önce başlatın. Daha sonra başarı dinleyicisinde izlemeyi durdurun.

MainActivity.kt

class MainActivity : AppCompatActivity() {
  // ...
  
  private val firebasePerformance = FirebasePerformance.getInstance()
  
  // ...

  private fun setupDigitClassifier() {
    // Add these lines to create and start the trace
    val downloadTrace = firebasePerformance.newTrace("download_model")
    downloadTrace.start()
    downloadModel("mnist_v1")
      // Add these lines to stop the trace on success
      .addOnSuccessListener {
        downloadTrace.stop()
      }
  }

// ...

  private fun classifyDrawing() {
    val bitmap = drawView?.getBitmap()

    if ((bitmap != null) && (digitClassifier.isInitialized)) {
      // Add these lines to create and start the trace
      val classifyTrace = firebasePerformance.newTrace("classify")
      classifyTrace.start()
      digitClassifier
        .classifyAsync(bitmap)
        .addOnSuccessListener { resultText -> 
          // Add this line to stop the trace on success
          classifyTrace.stop()
          predictedTextView?.text = resultText
        }
        .addOnFailureListener { e ->
          predictedTextView?.text = getString(
            R.string.tfe_dc_classification_error_message,
            e.localizedMessage
          )
          Log.e(TAG, "Error classifying drawing.", e)
        }
    }
  }

Performans etkinliklerine ilişkin günlük mesajlarını görüntüleyin

  1. Uygulamanızın AndroidManifest.xml dosyasına aşağıdaki gibi bir <meta-data> öğesi ekleyerek Performans İzleme için hata ayıklama günlüğünü etkinleştirin:

AndroidManifest.xml

<application>
    <meta-data
      android:name="firebase_performance_logcat_enabled"
      android:value="true" />
</application>
  1. Herhangi bir hata mesajı için günlük mesajlarınızı kontrol edin.
  2. Performance Monitoring, günlük mesajlarını FirebasePerformance ile etiketler. Logcat filtrelemeyi kullanarak, aşağıdaki komutu çalıştırarak özellikle süre izlemeyi ve HTTP/S ağ isteği günlüğünü görüntüleyebilirsiniz:
adb logcat -s FirebasePerformance
  1. Performans İzleme'nin performans olaylarını günlüğe kaydettiğini gösteren aşağıdaki günlük türlerini kontrol edin:
  • Logging TraceMetric
  • Logging NetworkRequestMetric

12. Firebase ML'ye ikinci bir model dağıtın

Modelinizin daha iyi bir model mimarisine sahip veya daha büyük veya güncellenmiş bir veri kümesi üzerinde eğitilmiş yeni bir sürümünü bulduğumuzda, mevcut modelimizi yeni sürümle değiştirme isteği duyabiliriz. Ancak testlerde iyi performans gösteren bir model, üretimde de aynı derecede iyi performans göstermeyebilir. Bu nedenle orijinal modelimiz ile yeni modeli karşılaştırmak için üretimde A/B testi yapalım.

Firebase Model Yönetimi API'sini etkinleştirin

Bu adımda Firebase Model Management API'nin Python kodunu kullanarak TensorFlow Lite modelimizin yeni bir sürümünü dağıtmasını sağlayacağız.

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.

2414fd5cced6c984.png Sorulduğunda Rakam Sınıflandırıcı uygulamasını seçin.

Yeni bir model eğitin ve Firebase ML'de Yayınlayın

Şimdi daha büyük bir veri kümesi kullanarak modelin yeni bir sürümünü eğiteceğiz ve ardından bunu Firebase Admin SDK'yı kullanarak doğrudan eğitim not defterinden programlı olarak dağıtacağız.

Hizmet hesabının özel anahtarını indirin

Firebase Admin SDK'yı kullanabilmemiz için önce bir hizmet hesabı oluşturmamız gerekecek. Bu bağlantıya tıklayarak Firebase konsolunun Hizmet Hesapları panelini açın ve Firebase Admin SDK için yeni bir hizmet hesabı oluşturmak üzere düğmeye tıklayın. İstendiğinde Yeni Özel Anahtar Oluştur düğmesini tıklayın. Colab not defterindeki isteklerimizi doğrulamak için hizmet hesabı anahtarını kullanacağız.

c3b95de1e5508516.png

Artık yeni modeli eğitebilir ve dağıtabiliriz.

  1. Bu ortak çalışma not defterini açın ve kendi Drive'ınızın altında bir kopyasını oluşturun.
  2. Solundaki oynat düğmesine tıklayarak ilk hücre olan "Geliştirilmiş bir TensorFlow Lite modelini eğitin" öğesini çalıştırın. Bu, yeni bir modeli eğitecektir ve biraz zaman alabilir.
  3. İkinci hücreyi çalıştırmak bir dosya yükleme istemi oluşturacaktır. Hizmet hesabınızı oluştururken Firebase Console'dan indirdiğiniz json dosyasını yükleyin.

71e847c6a85423b3.png

  1. Son iki hücreyi çalıştırın.

Colab dizüstü bilgisayarını çalıştırdıktan sonra Firebase konsolunda ikinci bir model görmelisiniz. İkinci modelin mnist_v2 olarak adlandırıldığından emin olun.

c316683bb4d75d57.png

13. Remote Config aracılığıyla bir model seçin

Artık iki ayrı modelimiz olduğuna göre çalışma zamanında hangi modelin indirileceğini seçmek için bir parametre ekleyeceğiz. İstemcinin alacağı parametrenin değeri, istemcinin hangi modeli indireceğini belirleyecektir.

Firebase konsoluna Yapılandırma Kuralları ekleyin

Öncelikle Firebase konsolunu açın ve sol gezinme menüsündeki Remote Config düğmesine tıklayın. Daha sonra "Parametre Ekle" butonuna tıklayın.

Yeni parametreye model_name adını verin ve ona varsayılan olarak "mnist_v1" değerini verin. Remote config parametresine modelin adını yazarak test etmek istediğimiz her model için yeni bir parametre eklemeden birden fazla modeli test edebiliriz. Güncelleştirmeleri uygulamak için Değişiklikleri Yayınla'yı tıklayın.

2949cb95c7214ca4.png

Firebase RemoteConfig bağımlılığı ekleyin

app/build.gradle.kts

implementation("com.google.firebase:firebase-config-ktx")

Firebase Uzaktan Yapılandırmasını Yapılandırma

MainActivity.kt

  private fun configureRemoteConfig() {
    remoteConfig = Firebase.remoteConfig
    val configSettings = remoteConfigSettings {
      minimumFetchIntervalInSeconds = 3600
    }
    remoteConfig.setConfigSettingsAsync(configSettings)
  }

Yapılandırma İsteme ve Kullanma

Yapılandırma için bir getirme isteği oluşturun ve yapılandırma parametrelerini alıp kullanmak için bir tamamlama işleyicisi ekleyin.

MainActivity.kt

 private fun setupDigitClassifier() {
    configureRemoteConfig()
    remoteConfig.fetchAndActivate()
      .addOnCompleteListener { task ->
        if (task.isSuccessful) {
          val modelName = remoteConfig.getString("model_name")
          val downloadTrace = firebasePerformance.newTrace("download_model")
          downloadTrace.start()
          downloadModel(modelName)
            .addOnSuccessListener {
              downloadTrace.stop()
            }
        } else {
          showToast("Failed to fetch model name.")
        }
      }
  }

Uzaktan Yapılandırmayı Test Et

  1. Tıkla 98205811bbed9d74.png Çalıştır düğmesi.
  2. Mnist_v1 modelinin indirildiğini belirten Toast mesajını gördüğünüzden emin olun.
  3. Firebase Konsolu'na geri dönün, varsayılan değeri mnist_v2 olarak değiştirin ve güncellemeleri uygulamak için Değişiklikleri Yayınla'yı seçin.
  4. Uygulamayı yeniden başlatın ve bu sefer mnist_v2 modelinin indirildiğini belirten Toast mesajını kontrol edin.

14. A/B Testi Modelinin Etkinliği

Firebase A/B Testi, ürün ve pazarlama denemelerini çalıştırmayı, analiz etmeyi ve ölçeklendirmeyi kolaylaştırarak uygulama deneyiminizi optimize etmenize yardımcı olur. Son olarak, iki modelimizden hangisinin daha iyi performans gösterdiğini görmek için Firebase'in yerleşik A/B Testi davranışını kullanabiliriz.

Firebase konsolunda Analytics -> Etkinlikler'e gidin. correct_inference olayı gösteriliyorsa bunu bir "Dönüşüm olayı" olarak işaretleyin, görüntülenmiyorsa Analytics -> Dönüşüm Etkinlikleri'ne gidip "Yeni Dönüşüm Etkinliği Oluştur"u tıklayıp correct_inference.

Şimdi Firebase konsolunda "Remote Config"e gidin, yeni eklediğimiz "model_name" parametresindeki daha fazla seçenek menüsünden "A/B testi" düğmesini seçin.

fad5ea36969d2aeb.png

Aşağıdaki menüde varsayılan adı kabul edin.

d7c006669ace6e40.png

Açılır menüden uygulamanızı seçin ve hedefleme kriterlerini aktif kullanıcıların %50'si olarak değiştirin.

cb72dcc7d2666bd3.png

correct_inference olayını daha önce bir dönüşüm olarak ayarlayabildiyseniz bu etkinliği izlenecek birincil metrik olarak kullanın. Aksi takdirde, etkinliğin Analytics'te görünmesini beklemek istemiyorsanız, correct_inference manually ekleyebilirsiniz.

1ac9c94fb3159271.png

Son olarak, Varyantlar ekranında, kontrol grubu varyantınızı mnist_v1 kullanacak şekilde ve Variant A grubunuzu mnist_v2 kullanacak şekilde ayarlayın.

e4510434f8da31b6.png

Sağ alt köşedeki İncele düğmesini tıklayın.

Tebrikler, iki ayrı modeliniz için başarıyla bir A/B testi oluşturdunuz! A/B testi şu anda taslak halindedir ve herhangi bir zamanda "Denemeyi Başlat" düğmesine tıklanarak başlatılabilir.

A/B testine daha yakından bakmak için A/B Testi belgelerine göz atın.

15. Tebrikler!

Bu codelab'de, uygulamanızdaki statik olarak paketlenmiş bir tflite varlığını Firebase'in dinamik olarak yüklenmiş bir TFLite modeliyle nasıl değiştireceğinizi öğrendiniz. TFLite ve Firebase hakkında daha fazla bilgi edinmek için diğer TFLite örneklerine ve Firebase başlangıç ​​kılavuzlarına göz atın.

Neleri ele aldık?

  • TensorFlow Lite
  • Firebase ML
  • Firebase Analizi
  • Firebase Performans İzleme
  • Firebase Uzaktan Yapılandırması
  • Firebase A/B Testi

Sonraki adımlar

  • Firebase ML Dağıtımını uygulamanıza uygulayın.

Daha fazla bilgi edin

Bir Sorunuz mu var?

Sorunları Bildir