TensorFlow Lite für Android

Mit TensorFlow Lite können Sie TensorFlow-Modelle für maschinelles Lernen (ML) in Ihren Android-Apps ausführen. Das TensorFlow Lite-System bietet vordefinierte und anpassbare Ausführungsumgebungen, um Modelle unter Android schnell und effizient auszuführen, einschließlich Optionen für die Hardwarebeschleunigung.

Modelle für maschinelles Lernen

TensorFlow Lite verwendet TensorFlow-Modelle, die in ein kleineres, portables und effizienteres Modellformat für maschinelles Lernen konvertiert werden. Sie können vordefinierte Modelle mit TensorFlow Lite unter Android verwenden oder eigene TensorFlow-Modelle erstellen und in das TensorFlow Lite-Format konvertieren.

Auf dieser Seite wird die Verwendung bereits erstellter Modelle für maschinelles Lernen erläutert. Das Erstellen, Trainieren, Testen und Konvertieren von Modellen wird nicht behandelt. Weitere Informationen zum Auswählen, Ändern, Erstellen und Konvertieren von Modellen für maschinelles Lernen für TensorFlow Lite finden Sie auf der Seite Modelle.

Modelle unter Android ausführen

Ein TensorFlow Lite-Modell, das in einer Android-App ausgeführt wird, nimmt Daten auf, verarbeitet sie und generiert eine Vorhersage auf der Grundlage der Modelllogik. Für die Ausführung eines TensorFlow Lite-Modells ist eine spezielle Laufzeitumgebung erforderlich. Die an das Modell übergebenen Daten müssen in einem bestimmten Datenformat vorliegen, das als Tensor bezeichnet wird. Wenn ein Modell die Daten verarbeitet, was als Ausführen einer Inferenz bezeichnet wird, generiert es Vorhersageergebnisse als neue Tensoren und übergibt sie an die Android-App, damit es Aktionen ausführen kann, z. B. dem Anzeigen des Ergebnisses für einen Nutzer oder dem Ausführen zusätzlicher Geschäftslogik.

Funktionaler Ausführungsablauf für TensorFlow Lite-Modelle in Android-Apps

Abbildung 1: Funktionaler Ausführungsablauf für TensorFlow Lite-Modelle in Android-Apps

Auf der Ebene des funktionalen Designs benötigt Ihre Android-App die folgenden Elemente, um ein TensorFlow Lite-Modell auszuführen:

  • TensorFlow Lite-Laufzeitumgebung zum Ausführen des Modells
  • Modelleingabe-Handler zur Umwandlung von Daten in Tensoren
  • Modellausgabe-Handler, um Ausgabeergebnistensoren zu empfangen und als Vorhersageergebnisse zu interpretieren

In den folgenden Abschnitten wird beschrieben, wie die TensorFlow Lite-Bibliotheken und -Tools diese Funktionselemente bereitstellen.

Anwendungen mit TensorFlow Lite erstellen

In diesem Abschnitt wird der empfohlene und gängigste Pfad für die Implementierung von TensorFlow Lite in Ihrer Android-App beschrieben. Sie sollten vor allem die Abschnitte Laufzeit und Entwicklungsbibliotheken beachten. Wenn Sie ein benutzerdefiniertes Modell entwickelt haben, sollten Sie unbedingt den Abschnitt Erweiterte Entwicklungspfade lesen.

Optionen für die Laufzeitumgebung

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

Im Allgemeinen sollten Sie die von Google Play-Diensten bereitgestellte Laufzeitumgebung verwenden, weil sie platzsparender ist als die Standardumgebung, da sie dynamisch geladen wird, sodass Ihre App kleiner bleibt. Die Google Play-Dienste verwenden außerdem automatisch die neueste, stabile Version der TensorFlow Lite-Laufzeit, sodass Sie im Laufe der Zeit zusätzliche Funktionen und eine verbesserte Leistung erhalten. Wenn Sie Ihre App auf Geräten anbieten, die keine Google Play-Dienste enthalten, oder wenn Sie Ihre ML-Laufzeitumgebung streng verwalten müssen, sollten Sie die TensorFlow Lite-Standardlaufzeit verwenden. Diese Option bündelt zusätzlichen Code in Ihrer Anwendung, sodass Sie mehr Kontrolle über die ML-Laufzeit in Ihrer Anwendung haben, allerdings auf Kosten einer größeren Downloadgröße.

Um auf diese Laufzeitumgebungen in Ihrer Android-App zuzugreifen, fügen Sie Ihrer App-Entwicklungsumgebung TensorFlow Lite-Entwicklungsbibliotheken hinzu. Informationen zur Verwendung der Standardlaufzeitumgebungen in Ihrer Anwendung finden Sie im nächsten Abschnitt.

Bibliotheken

Du kannst über die Google Play-Dienste auf die Interpreter API zugreifen. Sie können die Core- und Support-Bibliotheken von TensorFlow Lite in Ihrer Android-App verwenden. Programmierdetails zur Verwendung von TensorFlow Lite-Bibliotheken und -Laufzeitumgebungen finden Sie unter Entwicklungstools für Android.

Modelle abrufen

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

Eingabedaten verarbeiten

Alle Daten, die Sie an ein ML-Modell übergeben, müssen ein Tensor mit einer bestimmten Datenstruktur sein, die häufig als Form des Tensors bezeichnet wird. Damit Daten mit einem Modell verarbeitet werden können, muss der Anwendungscode Daten aus seinem nativen Format (z. B. Bild-, Text- oder Audiodaten) in einen Tensor in der für Ihr Modell erforderlichen Form umwandeln.

Inferenzen ausführen

Das Verarbeiten von Daten über ein Modell zum Generieren eines Vorhersageergebnisses wird als Ausführen einer Inferenz bezeichnet. Zum Ausführen einer Inferenz in einer Android-Anwendung sind eine TensorFlow Lite-Laufzeitumgebung, ein model und Eingabedaten erforderlich.

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 und den verfügbaren Rechenressourcen wie Arbeitsspeicher und CPU oder speziellen Prozessoren ab, die als Beschleuniger bezeichnet werden. Modelle für maschinelles Lernen können auf diesen speziellen Prozessoren wie Grafikprozessoren (GPUs) und Tensor Processing Units (TPUs) mithilfe von TensorFlow Lite-Hardwaretreibern, den Delegierten genannt, schneller ausgeführt werden. Weitere Informationen zu Bevollmächtigten und zur Hardwarebeschleunigung bei der Modellverarbeitung finden Sie in der Übersicht zur Hardwarebeschleunigung.

Ausgabeergebnisse verarbeiten

Modelle generieren Vorhersageergebnisse als Tensoren, die von Ihrer Android-App verarbeitet werden müssen, indem sie eine Aktion ausführen oder dem Nutzer ein Ergebnis anzeigen. Die Ergebnisse der Modellausgabe können einfach eine Zahl sein, die einem einzelnen Ergebnis (0 = Hund, 1 = Katze, 2 = Vogel) für eine Bildklassifizierung entspricht, oder viel komplexere Ergebnisse, wie mehrere Begrenzungsrahmen für mehrere klassifizierte Objekte in einem Bild mit Vorhersagen-Konfidenzbewertungen zwischen 0 und 1.

Erweiterte Entwicklungspfade

Wenn Sie komplexere und angepasste TensorFlow Lite-Modelle verwenden, müssen Sie möglicherweise erweiterte Entwicklungsansätze als oben beschrieben verwenden. In den folgenden Abschnitten werden erweiterte Techniken zum Ausführen und Entwickeln von Modellen für TensorFlow Lite in Android-Apps beschrieben.

Erweiterte Laufzeitumgebungen

Neben den Laufzeitumgebungen der Standardlaufzeit und der Google Play-Dienste für TensorFlow Lite gibt es zusätzliche Laufzeitumgebungen, die Sie mit Ihrer Android-App verwenden können. Diese Umgebungen können Sie am ehesten verwenden, wenn Sie ein Modell für maschinelles Lernen haben, das ML-Vorgänge verwendet, die von der Standardlaufzeitumgebung für TensorFlow Lite nicht unterstützt werden.

  • Flex-Laufzeit für TensorFlow Lite
  • Benutzerdefinierte TensorFlow Lite-Laufzeit

Mit der Flex-Laufzeit von TensorFlow Lite können Sie bestimmte Operatoren einbinden, die für Ihr Modell erforderlich sind. Als erweiterte Option zur Ausführung Ihres Modells können Sie TensorFlow Lite für Android erstellen, um Operatoren und andere Funktionen einzubeziehen, die zum Ausführen Ihres TensorFlow-Modells für maschinelles Lernen erforderlich sind. Weitere Informationen finden Sie unter TensorFlow Lite für Android erstellen.

C- und C++-APIs

TensorFlow Lite bietet außerdem eine API zum Ausführen von Modellen mit C und C++. Wenn Ihre App das Android-NDK verwendet, sollten Sie diese API verwenden. Sie können diese API auch in Betracht ziehen, wenn Sie Code zwischen mehreren Plattformen freigeben möchten. Weitere Informationen zu dieser Entwicklungsoption finden Sie auf der Seite Entwicklungstools.

Serverbasierte Modellausführung

Im Allgemeinen sollten Sie Modelle in Ihrer App auf einem Android-Gerät ausführen, um von einer geringeren Latenz und einem besseren Datenschutz für Ihre Nutzer zu profitieren. Es gibt jedoch Fälle, in denen die Ausführung eines Modells auf einem Cloud-Server außerhalb des Geräts eine bessere Lösung ist. Beispiel: Sie haben ein großes Modell, das sich nicht ohne Weiteres auf eine Größe reduzieren lässt, die zu den Android-Geräten Ihrer Nutzer passt, oder das mit angemessener Leistung auf diesen Geräten ausgeführt werden kann. Dieser Ansatz kann auch die bevorzugte Lösung sein, wenn eine konsistente Leistung des Modells auf einer Vielzahl von Geräten oberste Priorität hat.

Google Cloud bietet eine vollständige Suite von Diensten zum Ausführen von TensorFlow-Modellen für maschinelles Lernen. Weitere Informationen finden Sie auf der Google Cloud-Seite Produkte für KI und maschinelles Lernen.

Entwicklung und Optimierung benutzerdefinierter Modelle

Erweiterte Entwicklungspfade umfassen die Entwicklung benutzerdefinierter Modelle für maschinelles Lernen und die Optimierung dieser Modelle für den Einsatz auf Android-Geräten. Wenn Sie benutzerdefinierte Modelle erstellen möchten, sollten Sie Quantisierungstechniken für Modelle in Betracht ziehen, um die Speicher- und Verarbeitungskosten zu reduzieren. Weitere Informationen zum Erstellen von Hochleistungsmodellen für die Verwendung mit TensorFlow Lite finden Sie unter Best Practices für die Leistung im Abschnitt „Modelle“.