Jeśli Twoja aplikacja używa niestandardowych funkcji TensorFlow Lite, możesz za pomocą Firebase ML do wdrażania modeli. Wdrażając modele za pomocą Firebase, może zmniejszyć rozmiar początkowego pobieranego pliku i zaktualizować modele ML aplikacji bez publikowania nowej wersji aplikacji. Dzięki Zdalnej konfiguracji i A/B Dzięki testowaniu możesz dynamicznie udostępniać różne modele różnym grupom użytkowników.
Modele TensorFlow Lite
Modele TensorFlow Lite to modele ML zoptymalizowane pod kątem uruchamiania na urządzeniach mobilnych urządzenia. Aby pobrać model TensorFlow Lite:
- użyć gotowego modelu, takiego jak jeden z oficjalnych modeli TensorFlow Lite.
- Przekonwertuj model TensorFlow, model Keras lub konkretną funkcję na TensorFlow Lite.
Pamiętaj, że w przypadku braku biblioteki TensorFlow Lite dla Dart musisz zintegrować z natywną biblioteką TensorFlow Lite platform. Ta integracja nie jest tutaj udokumentowana.
Zanim zaczniesz
Instalowanie i zainicjowanie pakietów SDK Firebase na potrzeby Flutter jeśli jeszcze nie zostało to zrobione.
W katalogu głównym projektu Flutter uruchom to polecenie polecenie instalacji wtyczki do pobierania modeli ML:
flutter pub add firebase_ml_model_downloader
Przebuduj projekt:
flutter run
1. Wdrażanie modelu
Wdróż niestandardowe modele TensorFlow za pomocą konsoli Firebase lub pakiety SDK Python dla administratorów Firebase i Node.js. Zobacz Wdrażanie modeli niestandardowych i zarządzanie nimi
Po dodaniu do projektu Firebase modelu niestandardowego możesz się odwoływać do
w swoich aplikacjach o podanej przez Ciebie nazwie. W każdej chwili możesz wdrożyć
nowy model TensorFlow Lite i pobrać go na użytkowników urządzenia według
Dzwonię pod getModel()
(patrz poniżej).
2. Pobierz model na urządzenie i zainicjuj interpreter TensorFlow Lite
Aby użyć modelu TensorFlow Lite w aplikacji, najpierw użyj narzędzia do pobierania modeli aby pobrać na urządzenie najnowszą wersję modelu. Następnie utwórz instancję Interpreter TensorFlow Lite z modelem.
Aby rozpocząć pobieranie modelu, wywołaj metodę getModel()
narzędzia do pobierania modelu,
określając nazwę przypisaną do modelu podczas jego przesyłania.
aby zawsze pobierać najnowsze modele oraz warunki,
którzy chcą zezwolić na pobieranie.
Możesz wybrać jeden z 3 sposobów pobierania:
Typ pobierania | Opis |
---|---|
localModel
|
Pobierz model lokalny z urządzenia.
Jeśli nie jest dostępny model lokalny,
działa jak latestModel . Użyj tej
Jeśli Cię to nie interesuje, typ pliku do pobrania
sprawdzając dostępność aktualizacji modelu. Przykład:
używasz Zdalnej konfiguracji do pobierania
nazwy modeli i zawsze przesłane modele
pod nowymi nazwami (zalecane). |
localModelUpdateInBackground
|
Pobierz model lokalny z urządzenia
zacznij aktualizować model w tle.
Jeśli nie jest dostępny model lokalny,
działa jak latestModel . |
latestModel
|
Pobierz najnowszy model. Jeśli model lokalny to najnowsza wersja, zwraca błąd lokalny model atrybucji. Jeśli nie, pobierz najnowszą wersję model atrybucji. To działanie będzie blokowane do czasu pobrana najnowsza wersja (nie ). Używaj tego sposobu tylko w w przypadku, gdy musisz podać najnowsze wersji. |
Należy wyłączyć funkcje związane z modelem – na przykład wyszarzone lub ukryj część interfejsu użytkownika, dopóki nie potwierdzisz, że model został pobrany.
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;
// ...
});
Wiele aplikacji rozpoczyna zadanie pobierania w kodzie inicjowania, ale możesz to zrobić. więc w dowolnym momencie przed użyciem modelu.
3. Przeprowadź wnioskowanie na danych wejściowych
Po zapisaniu pliku z modelem na urządzeniu możesz go używać przy użyciu Interpreter TensorFlow Lite do wnioskowania. W przypadku braku utrzymywanego biblioteki TensorFlow Lite dla Dart, musisz zintegrować natywne biblioteki TensorFlow Lite na iOS i Androida.
Dodatek: zabezpieczenia modelu
Niezależnie od tego, jak udostępnisz swoje modele TensorFlow Lite Firebase ML, Firebase ML przechowuje je w standardowym zserializowanym formacie protokołu w formacie pamięci lokalnej.
Teoretycznie oznacza to, że każdy może skopiować Twój model. Pamiętaj jednak: W praktyce większość modeli jest specyficzna dla danej aplikacji i pod kątem podobnych optymalizacji, jakie stwarzają konkurencji, demontaż ponownego wykorzystania kodu. Musisz jednak wiedzieć o tym ryzyku, zanim zaczniesz niestandardowy model w swojej aplikacji.