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:
- Resmi TensorFlow Lite modellerinden biri gibi önceden oluşturulmuş bir model kullanın
- TensorFlow modelini, Keras modelini veya somut işlevi TensorFlow Lite'a dönüştürün.
Dart için bakımlı bir TensorFlow Lite kitaplığının olmadığı durumlarda, için yerel TensorFlow Lite kitaplığıyla entegrasyon platformlar. Bu entegrasyon burada belirtilmemiş.
Başlamadan önce
Flutter için Firebase SDK'larını yükleme ve başlatma (ve bunu yapmadıysanız).
Flutter projenizin kök dizininden aşağıdaki komutu çalıştırın: komutunu çalıştırın:
flutter pub add firebase_ml_model_downloader
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
Uygulamanızda TensorFlow Lite modelinizi 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ı,
almak istediğiniz her zaman en son modeli ve bu modele
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 modeli. Aksi durumda en yeni modeli. 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.