LiteRT für Android

Mit LiteRT können Sie TensorFlow-Modelle für maschinelles Lernen (ML) in Ihren Android-Apps. Das LiteRT-System bietet vordefinierte und anpassbare für die schnelle und effiziente Ausführung von Modellen unter Android. einschließlich Optionen für die Hardwarebeschleunigung.

Modelle für maschinelles Lernen

LiteRT nutzt TensorFlow-Modelle, die in kleinere, tragbaren und effizienteren ML-Modellformat. Sie können vordefinierte mit LiteRT auf Android-Geräten testen oder eigene TensorFlow-Modelle erstellen ins LiteRT-Format konvertieren.

Auf dieser Seite wird die Verwendung bereits erstellter Modelle für maschinelles Lernen erläutert. das Erstellen, Trainieren, Testen und Umwandeln von Modellen. Weitere Informationen zu das Auswählen, Modifizieren, Erstellen und Umwandeln von ML-Modellen für LiteRT auf der Seite Modelle.

Modelle unter Android ausführen

Ein LiteRT-Modell, das in einer Android-App ausgeführt wird, erfasst Daten, Prozesse und generiert basierend auf der Logik des Modells eine Vorhersage. Ein TensorFlow Für die Ausführung des Lite-Modells ist eine spezielle Laufzeitumgebung erforderlich. Daten, die an das Modell übergeben werden, müssen in einem bestimmten Datenformat vorliegen, tensor. Wenn ein Modell die ausgeführt werden (Inferenz ausführen), werden Vorhersageergebnisse Tensoren und übergibt sie an die Android-App, damit sie Aktionen ausführen kann, Nutzern das Ergebnis anzeigen oder zusätzliche Geschäftslogik ausführen.

Funktionaler Ausführungsablauf für LiteRT-Modelle in Android
Apps

Abbildung 1. Funktionaler Ausführungsablauf für LiteRT-Modelle in Android Apps.

Auf funktionaler Designebene benötigt Ihre Android-App die folgenden Elemente, um ein LiteRT-Modell ausführen:

  • LiteRT-Laufzeitumgebung zum Ausführen des Modells
  • Modelleingabe-Handler zum Transformieren von Daten in Tensoren
  • Modellausgabe-Handler zum Empfangen und Interpretieren von Ausgabeergebnistensoren als Vorhersageergebnisse

In den folgenden Abschnitten wird beschrieben, wie die LiteRT-Bibliotheken und -Tools die diese funktionalen Elemente bereitstellen.

Apps mit LiteRT erstellen

In diesem Abschnitt wird der empfohlene und gängigste Weg für die Implementierung LiteRT in deiner Android-App nutzen Achten Sie besonders auf die Laufzeit und Entwicklungsbibliotheken Wenn Wenn Sie ein benutzerdefiniertes Modell entwickelt haben, lesen Sie den Abschnitt Erweiterte Entwicklung Pfad.

Optionen für die Laufzeitumgebung

Es gibt mehrere Möglichkeiten, eine Laufzeitumgebung zum Ausführen von Modellen zu aktivieren in deiner Android-App. Dies sind die bevorzugten Optionen:

Im Allgemeinen sollten Sie die von Google Play bereitgestellte Laufzeitumgebung verwenden. -Dienste, da sie platzsparender sind als die Standardumgebung, da dynamisch geladen und die App-Größe verringert. Google Play-Dienste auch verwendet automatisch die neueste stabile Version von LiteRT. und bietet so zusätzliche Funktionen und eine verbesserte Leistung. Wenn Sie bieten Ihre App auf Geräten an, auf denen die Google Play-Dienste nicht verfügbar sind, oder ML-Laufzeitumgebung genau verwalten müssen, sollten Sie die Methode Standard-LiteRT-Laufzeit. Mit dieser Option wird zusätzlicher Code in Ihrem App, mit der Sie mehr Kontrolle über die ML-Laufzeit in Ihrer App haben, die Kosten für die Erhöhung der Downloadgröße.

Sie greifen in Ihrer Android-App auf diese Laufzeitumgebungen zu, indem Sie TensorFlow hinzufügen Lite-Entwicklungsbibliotheken für Ihre App-Entwicklungsumgebung Weitere Informationen zur Verwendung der Standard-Laufzeitumgebungen in Ihrer App finden Sie in den nächsten .

Bibliotheken

Du kannst auf die Interpreter API über die Google Play-Website Dienste. Sie können die LiteRT core und Supportbibliotheken in deiner Android-App. Für Programmierdetails zur Verwendung von LiteRT-Bibliotheken und -Laufzeiten finden Sie unter Entwickler-Tools für Android.

Modelle abrufen

Zum Ausführen eines Modells in einer Android-App ist ein Modell im LiteRT-Format erforderlich. Ich können Sie vorgefertigte Modelle verwenden oder eines mit TensorFlow erstellen und in das Lite-Format konvertieren. Format. Weitere Informationen zum Abrufen von Modellen für Ihre Android-App finden Sie in der LiteRT-Seite Modelle.

Eingabedaten verarbeiten

Alle Daten, die Sie an ein ML-Modell übergeben, müssen ein Tensor mit bestimmten Daten sein Struktur, die oft als Form des Tensors bezeichnet wird. Um Daten mit einem Modell zu verarbeiten, muss Ihr App-Code Daten aus dem nativen Format, z. B. Bilder, Text, oder Audiodaten in einen Tensor in der erforderlichen Form für Ihr Modell umwandeln.

Inferenzen ausführen

Die Verarbeitung von Daten mithilfe eines Modells zum Generieren eines Vorhersageergebnisses wird als eine Inferenz ausführen. Für das Ausführen einer Inferenz in einer Android-App ist eine LiteRT-Laufzeitumgebung, ein Modell und eine Eingabe Daten.

Die Geschwindigkeit, mit der ein Modell eine Inferenz auf einem bestimmten Gerät generieren kann hängt von der Größe der verarbeiteten Daten, der Komplexität des Modells verfügbaren Rechenressourcen wie Speicher und CPU oder spezialisierte Prozessoren sogenannte Beschleuniger. Machine-Learning-Modelle können auf diesen Spezialprozessoren wie GPUs und Tensor Verarbeitungseinheiten (TPUs), unter Verwendung von LiteRT-Hardwaretreibern, delegates. Weitere Informationen zu Bevollmächtigten und der Hardwarebeschleunigung zur Modellverarbeitung, siehe den Abschnitt Hardwarebeschleunigung Übersicht.

Ausgabeergebnisse verarbeiten

Modelle generieren Vorhersageergebnisse als Tensoren, die von Ihrem Android-App, indem sie eine Aktion ausführen oder dem Nutzer ein Ergebnis anzeigen. Modellausgabe Ergebnisse können so einfach sein wie eine Zahl, die einem einzelnen Ergebnis entspricht (0 = Hund, 1 = Katze, 2 = Vogel) für eine Bildklassifizierung bis hin zu komplexeren Ergebnissen, wie mehrere Begrenzungsrahmen für mehrere klassifizierte Objekte in einem Bild, wobei Konfidenzbewertungen für Vorhersagen zwischen 0 und 1 liegen.

Erweiterte Entwicklungspfade

Wenn Sie komplexere und benutzerdefinierte LiteRT-Modelle verwenden, komplexere Entwicklungsansätze erforderlich sind als oben beschrieben. In den folgenden Abschnitten werden fortgeschrittene Techniken zum Ausführen von Modellen und für LiteRT in Android-Apps entwickeln.

Erweiterte Laufzeitumgebungen

Zusätzlich zur Standardlaufzeit und zur Laufzeit der Google Play-Dienste -Umgebungen für LiteRT sind, gibt es weitere Laufzeitumgebungen, die du mit deiner Android-App verwenden kannst. Der wahrscheinlichste Verwendungszweck für diese Umgebungen ist, Sie haben ein Modell für maschinelles Lernen, das nicht unterstützte ML-Vorgänge verwendet. der Standardlaufzeitumgebung für LiteRT.

Mit der LiteRT-Flex-Laufzeit können Sie bestimmte Operatoren, die für Ihr Modell erforderlich sind. Als erweiterte Option zum Ausführen können Sie LiteRT für Android mit Operatoren und weitere Funktionen, die zum Ausführen Ihres TensorFlow-Modells für maschinelles Lernen erforderlich sind. Weitere Informationen finden Sie unter LiteRT für Android erstellen.

C und C++ APIs

LiteRT bietet außerdem eine API zum Ausführen von Modellen mit C und C++. Wenn Ihr das Android NDK verwendet, sollten Sie sollten Sie diese API verwenden. Sie können diese API auch in Betracht ziehen, wenn Sie Code zwischen mehreren Plattformen teilen möchten. Weitere Informationen Weitere Informationen zu dieser Entwicklungsoption finden Sie unter Entwicklung finden Sie auf der Seite „Tools“.

Serverbasierte Modellausführung

Im Allgemeinen sollten Sie Modelle in Ihrer App auf einem Android-Gerät ausführen, und profitieren von einer geringeren Latenz und einem verbesserten Datenschutz. Sie können jedoch kann es besser sein, ein Modell extern auf einem Cloud-Server Lösung. Wenn Sie z. B. ein großes Modell haben, das sich auf die Anforderungen der Nutzer Android-Geräten oder können mit angemessene Leistung auf diesen Geräten. Dieser Ansatz könnte auch für bevorzugte Lösung, wenn die Leistung des Modells über eine breite Palette von Geräte hat oberste Priorität.

Google Cloud bietet eine umfassende Suite von Diensten zum Ausführen von TensorFlow-Maschinen Lernmodelle. Weitere Informationen finden Sie auf der Google Cloud-Seite KI und Maschinell Seite „Lernprodukte“.

Entwicklung und Optimierung benutzerdefinierter Modelle

Erweiterte Entwicklungspfade umfassen wahrscheinlich auch die Entwicklung benutzerdefinierter Maschinen Lernmodelle und Optimierung dieser Modelle für die Verwendung auf Android-Geräten. Wenn Sie Erstellen benutzerdefinierter Modelle planen, sollten Sie erwägen, Quantisierungen anzuwenden. Techniken zur Modellierung von Methoden, Speicher- und Verarbeitungskosten. Weitere Informationen zum Erstellen Hochleistungs-Modelle zur Verwendung mit LiteRT, siehe Beste Leistung Best Practices im Abschnitt „Modelle“.