Flutter ile özel bir TensorFlow Lite modeli kullanma

Uygulamanızda TensorFlow Lite modellerini kullanabilirsiniz. Firebase ML kullanın. Modelleri Firebase ile dağıtarak Uygulamanızın ilk indirme boyutunu küçültebilir ve uygulamanızın makine öğrenimi modellerini güncelleyebilir en iyi uygulamaları paylaşacağız. Remote Config ve A/B ile Test ederek farklı kullanıcı gruplarına dinamik olarak farklı modeller sunabilirsiniz.

TensorFlow Lite modelleri

TensorFlow Lite modelleri, mobil cihazlarda çalışmak için optimize edilmiş makine öğrenimi modelleridir cihazlar. TensorFlow Lite modeli edinmek için:

Dart için bakımlı bir TensorFlow Lite kitaplığının bulunmadığı durumlarda için yerel TensorFlow Lite kitaplığıyla entegrasyon platformlar. Bu entegrasyon burada belirtilmemiş.

Başlamadan önce

  1. Flutter için Firebase SDK'larını yükleme ve başlatma (ve bunu yapmadıysanız).

  2. Flutter projenizin kök dizininden aşağıdaki kodu çalıştırın: komutunu çalıştırın:

    flutter pub add firebase_ml_model_downloader
    
  3. Projenizi yeniden derleyin:

    flutter run
    

1. Modelinizi dağıtma

Özel TensorFlow modellerinizi Firebase konsolunu ya da Firebase Admin Python ve Node.js SDK'ları. Görüntüleyin Özel modelleri dağıtın ve yönetin.

Firebase projenize özel model ekledikten sonra, modeliniz olmalıdır. İstediğiniz zaman bir modelini kullanmak ve yeni modeli kullanıcıların cihazları getModel() aranıyor (aşağıya bakın).

2. Modeli cihaza indirin ve TensorFlow Lite çevirmenini başlatın

TensorFlow Lite modelinizi uygulamanızda kullanmak için önce model indirme aracını kullanın modelin en son sürümünü cihaza indirin. Ardından, Modelle birlikte TensorFlow Lite çevirmeni.

Model indirme işlemini başlatmak için model indirme aracının getModel() yöntemini çağırın. ister modelinizi isterken, modeli yüklerken atadığınız adı, her zaman en son modeli indirmek istiyorsunuz. Bu model indirmeye izin vermek istiyorsunuz.

Üç indirme davranışı arasından seçim yapabilirsiniz:

İndirme türü Açıklama
localModel Cihazdan yerel modeli alın. Yerel model yoksa latestModel gibi davranır. Bunu kullan ilginizi çekmiyorsa indirme türü model güncellemeleri kontrol ediliyor. Örneğin, geri almak için Remote Config’i ve modelleri her zaman (önerilir).
localModelUpdateInBackground Cihazdan yerel modeli alın ve modeli arka planda güncellemeye başlayın. Yerel model yoksa latestModel gibi davranır.
latestModel En son modeli edinin. Yerel model en son sürüm, yerel model. Aksi durumda en yeni model. Bu davranış, en son sürüm indirildiğinde (yalnızca önerilir). Bu davranışı yalnızca sahip olmanız gereken en güncel sürümünü değil.

Modelle ilgili işlevleri (ör. devre dışı bırakma veya devre dışı bırakma) kullanıcı arayüzünüzün bir kısmını gizleyin (modelin indirildiğini onaylayana kadar).

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 Bu nedenle, herhangi bir noktada modeli kullanmanız gerekir.

3. Giriş verilerinde çıkarım yap

Model dosyanız artık cihazda olduğuna göre Çıkarım yapmak için TensorFlow Lite yorumlayıcısı. Bakım fonksiyonlarının TensorFlow Lite kitaplığını kullanabilirsiniz, yerel TensorFlow Lite kitaplıkları yeniden hedefleme kampanyaları için kullanılabilir.

Ek: Model güvenliği

TensorFlow Lite modellerinizi kullanıcılara nasıl sunduğunuz fark etmeksizin Firebase ML, Firebase ML bunları standart serileştirilmiş protobuf biçiminde depolar. yerel depolama.

Teoride bu, herkesin modelinizi kopyalayabileceği anlamına gelir. Ancak, pratikte çoğu model, uygulamaya özgüdür ve her bir model rakiplerin parçalarının parçalarının sökülüp parçalarının parçalarının kodunuzu tekrarlamanız gerekir. Yine de, anahtar kelimeleri kullanmadan önce bu riskin farkında olmalısınız. bir model oluşturabilirsiniz.