Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Flutter ile özel bir TensorFlow Lite modeli kullanın

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Uygulamanız özel TensorFlow Lite modelleri kullanıyorsa modellerinizi dağıtmak için Firebase ML'yi kullanabilirsiniz. Modelleri Firebase ile dağıtarak, uygulamanızın ilk indirme boyutunu küçültebilir ve uygulamanızın yeni bir sürümünü yayınlamadan uygulamanızın ML modellerini güncelleyebilirsiniz. Ayrıca Remote Config ve A/B Testing ile farklı modelleri farklı kullanıcı gruplarına dinamik olarak sunabilirsiniz.

TensorFlow Lite modelleri

TensorFlow Lite modelleri, mobil cihazlarda çalışacak şekilde optimize edilmiş ML modelleridir. Bir TensorFlow Lite modeli almak için:

Sen başlamadan önce

  1. Henüz yapmadıysanız , Flutter için Firebase SDK'larını kurun ve başlatın .

  2. ML model indirici eklentisini kurmak için Flutter projenizin kök dizininden aşağıdaki komutu çalıştırın:

    flutter pub add firebase_ml_model_downloader
    
  3. Projenizi yeniden oluşturun:

    flutter run
    

1. Modelinizi dağıtın

Firebase konsolunu veya Firebase Admin Python ve Node.js SDK'larını kullanarak özel TensorFlow modellerinizi dağıtın. Özel modelleri dağıtma ve yönetme konusuna bakın.

Firebase projenize özel bir model ekledikten sonra, belirttiğiniz adı kullanarak uygulamalarınızda modele başvurabilirsiniz. İstediğiniz zaman yeni bir TensorFlow Lite modelini dağıtabilir ve yeni modeli getModel() çağırarak kullanıcıların cihazlarına indirebilirsiniz (aşağıya bakın).

2. Modeli cihaza indirin ve bir TensorFlow Lite yorumlayıcısını başlatın

TensorFlow Lite modelinizi uygulamanızda kullanmak için öncelikle modelin en son sürümünü cihaza indirmek için model indiriciyi kullanın. Ardından, modelle bir TensorFlow Lite yorumlayıcısının örneğini oluşturun.

Model indirmeyi başlatmak için, yüklediğinizde modele atadığınız adı, her zaman en son modeli indirmek isteyip istemediğinizi ve indirmeye izin vermek istediğiniz koşulları belirterek model indiricisinin getModel() yöntemini çağırın.

Üç indirme davranışından birini seçebilirsiniz:

İndirme türü Tanım
localModel Cihazdan yerel modeli alın. Kullanılabilir yerel model yoksa, bu, latestModel gibi davranır. Model güncellemelerini kontrol etmekle ilgilenmiyorsanız bu indirme türünü kullanın. Örneğin, model adlarını almak için Remote Config'i kullanıyorsunuz ve modelleri her zaman yeni adlar altında yüklüyorsunuz (önerilir).
localModelUpdateInBackground Cihazdan yerel modeli alın ve arka planda modeli güncellemeye başlayın. Kullanılabilir yerel model yoksa, bu, latestModel gibi davranır.
latestModel En son modeli alın. Yerel model en son sürümse, yerel modeli döndürür. Aksi takdirde, en son modeli indirin. Bu davranış, en son sürüm indirilene kadar engellenir (önerilmez). Bu davranışı yalnızca en son sürüme açıkça ihtiyaç duyduğunuz durumlarda kullanın.

Modelin indirildiğini onaylayana kadar modelle ilgili işlevleri devre dışı bırakmalısınız (örneğin, kullanıcı arayüzünüzün gri renkte görünmesi veya bir kısmını gizleme).

FirebaseModelDownloader.instance
    .getModel(
        "yourModelName",
        FirebaseModelDownloadType.localModel,
        FirebaseModelDownloadConditions(
          iosAllowsCellularAccess: true,
          iosAllowsBackgroundDownloading: false,
          androidChargingRequired: false,
          androidWifiRequired: false,
          androidDeviceIdleRequired: false,
        )
    )
    .then((customModel) {
      // Download complete. Depending on your app, you could enable the ML
      // feature, or switch from the local model to the remote model, etc.

      // The CustomModel object contains the local path of the model file,
      // which you can use to instantiate a TensorFlow Lite interpreter.
      final localModelPath = customModel.file;

      // ...
    });

Birçok uygulama indirme görevini başlatma kodunda başlatır, ancak bunu modeli kullanmaya ihtiyaç duymadan önce herhangi bir noktada yapabilirsiniz.

3. Girdi verileri üzerinde çıkarım gerçekleştirin

Artık model dosyanız cihazda olduğuna göre, onu TensorFlow Lite yorumlayıcı ile çıkarım yapmak için kullanabilirsiniz. Bunun için birkaç seçeneğiniz var:

Ek: Model güvenliği

TensorFlow Lite modellerinizi Firebase ML için nasıl kullanılabilir hale getirdiğinizden bağımsız olarak, Firebase ML bunları yerel depolamada standart serileştirilmiş protobuf biçiminde saklar.

Teorik olarak bu, herkesin modelinizi kopyalayabileceği anlamına gelir. Bununla birlikte, pratikte, çoğu model uygulamaya o kadar özeldir ve optimizasyonlarla karıştırılmıştır ki, risk rakiplerinizin kodunuzu söküp yeniden kullanma riskine benzer. Yine de, uygulamanızda özel bir model kullanmadan önce bu riskin farkında olmalısınız.