Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Beginnen Sie mit TensorFlow Lite

TensorFlow Lite bietet alle Tools, die Sie zum Konvertieren und Ausführen von TensorFlow-Modellen auf Mobil-, Embedded- und IoT-Geräten benötigen. Die folgende Anleitung führt Sie durch die einzelnen Schritte des Entwickler-Workflows und enthält Links zu weiteren Anweisungen.

1. Wählen Sie ein Modell

Ein TensorFlow-Modell ist eine Datenstruktur, die die Logik und das Wissen eines maschinellen Lernnetzwerks enthält, das zur Lösung eines bestimmten Problems trainiert wurde. Es gibt viele Möglichkeiten, ein TensorFlow-Modell zu erhalten, von der Verwendung vorgefertigter Modelle bis zum Training Ihrer eigenen.

Um ein Modell mit TensorFlow Lite zu verwenden, müssen Sie ein vollständiges TensorFlow-Modell in das TensorFlow Lite-Format konvertieren. Sie können kein Modell mit TensorFlow Lite erstellen oder trainieren. Sie müssen also mit einem regulären TensorFlow-Modell beginnen und das Modell dann konvertieren .

Verwenden Sie ein vorab trainiertes Modell

Das TensorFlow Lite-Team bietet eine Reihe vorgefertigter Modelle an, die eine Vielzahl von Problemen des maschinellen Lernens lösen. Diese Modelle wurden für die Verwendung mit TensorFlow Lite konvertiert und können in Ihren Anwendungen verwendet werden.

Die vorgefertigten Modelle umfassen:

Unsere vollständige Liste der vorgefertigten Modelle finden Sie unter Modelle .

Modelle aus anderen Quellen

Es gibt viele andere Orte, an denen Sie vorgefertigte TensorFlow-Modelle erhalten können, einschließlich TensorFlow Hub . In den meisten Fällen werden diese Modelle nicht im TensorFlow Lite-Format bereitgestellt, und Sie müssen sie vor der Verwendung konvertieren .

Modell neu trainieren (Transferlernen)

Mit Transfer Learning können Sie ein trainiertes Modell nehmen und es für eine andere Aufgabe neu trainieren. Zum Beispiel kann eine Bildklassifikation könnte Modell neue Kategorien von Bild erkennen wird umgeschult. Das erneute Training nimmt weniger Zeit in Anspruch und erfordert weniger Daten als das Training eines Modells von Grund auf neu.

Sie können Transfer Learning verwenden, um vorab trainierte Modelle an Ihre Anwendung anzupassen. In TensorFlow Codelab erfahren Sie, wie Sie Transferlernen in Blumen erkennen erkennen.

Trainiere ein benutzerdefiniertes Modell

Wenn Sie Ihr eigenes TensorFlow-Modell entworfen und trainiert haben oder ein Modell aus einer anderen Quelle trainiert haben, müssen Sie es in das TensorFlow Lite-Format konvertieren .

Sie können auch die TensorFlow Lite Model Maker-Bibliothek ausprobieren, die das Trainieren eines TensorFlow Lite-Modells mithilfe benutzerdefinierter Datensätze vereinfacht.

2. Konvertieren Sie das Modell

TensorFlow Lite wurde entwickelt, um Modelle auf mobilen und anderen eingebetteten Geräten mit begrenzten Rechen- und Speicherressourcen effizient auszuführen. Ein Teil dieser Effizienz ergibt sich aus der Verwendung eines speziellen Formats zum Speichern von Modellen. TensorFlow-Modelle müssen in dieses Format konvertiert werden, bevor sie von TensorFlow Lite verwendet werden können.

Durch das Konvertieren von Modellen wird die Dateigröße reduziert und Optimierungen eingeführt, die die Genauigkeit nicht beeinträchtigen. Der TensorFlow Lite-Konverter bietet Optionen, mit denen Sie die Dateigröße weiter reduzieren und die Ausführungsgeschwindigkeit mit einigen Kompromissen erhöhen können.

TensorFlow Lite Konverter

Der TensorFlow Lite-Konverter ist ein als Python-API verfügbares Tool, das trainierte TensorFlow-Modelle in das TensorFlow Lite-Format konvertiert. Es können auch Optimierungen eingeführt werden, die in Abschnitt 4, Optimieren Ihres Modells, behandelt werden .

Das folgende Beispiel zeigt ein TensorFlow SavedModel , das in das TensorFlow Lite-Format konvertiert wird:

import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)

Sie können TensorFlow 2.0-Modelle auf ähnliche Weise konvertieren .

Der Konverter kann auch über die Befehlszeile verwendet werden , die Python-API wird jedoch empfohlen.

Optionen

Der Konverter kann aus einer Vielzahl von Eingabetypen konvertieren.

Bei der Konvertierung von TensorFlow 1.x-Modellen sind dies:

Bei der Konvertierung von TensorFlow 2.x-Modellen sind dies:

Der Konverter kann so konfiguriert werden, dass verschiedene Optimierungen angewendet werden, die die Leistung verbessern oder die Dateigröße verringern können. Dies wird in Abschnitt 4, Optimieren Ihres Modells, behandelt .

Betriebskompatibilität

TensorFlow Lite unterstützt derzeit eine begrenzte Teilmenge von TensorFlow-Vorgängen . Langfristiges Ziel ist es, dass alle TensorFlow-Vorgänge unterstützt werden.

Wenn das zu konvertierende Modell nicht unterstützte Operationen enthält, können Sie TensorFlow Select verwenden , um Operationen aus TensorFlow einzuschließen. Dies führt dazu, dass eine größere Binärdatei auf Geräten bereitgestellt wird.

3. Führen Sie eine Inferenz mit dem Modell durch

Inferenz ist der Prozess des Durchlaufens von Daten durch ein Modell, um Vorhersagen zu erhalten. Es erfordert ein Modell, einen Interpreter und Eingabedaten.

TensorFlow Lite Interpreter

Der TensorFlow Lite-Interpreter ist eine Bibliothek, die eine Modelldatei verwendet, die von ihr definierten Operationen für Eingabedaten ausführt und Zugriff auf die Ausgabe bietet.

Der Interpreter funktioniert plattformübergreifend und bietet eine einfache API zum Ausführen von TensorFlow Lite-Modellen aus Java, Swift, Objective-C, C ++ und Python.

Der folgende Code zeigt den von Java aufgerufenen Interpreter:

try (Interpreter interpreter = new Interpreter(tensorflow_lite_model_file)) {
  interpreter.run(input, output);
}

GPU-Beschleunigung und Delegaten

Einige Geräte bieten Hardwarebeschleunigung für maschinelle Lernvorgänge. Beispielsweise verfügen die meisten Mobiltelefone über GPUs, die Gleitkomma-Matrixoperationen schneller als eine CPU ausführen können.

Die Beschleunigung kann erheblich sein. Beispielsweise läuft ein MobileNet v1-Bildklassifizierungsmodell auf einem Pixel 3-Telefon 5,5-mal schneller, wenn die GPU-Beschleunigung verwendet wird.

Der TensorFlow Lite-Interpreter kann mit Delegaten konfiguriert werden, um die Hardwarebeschleunigung auf verschiedenen Geräten zu nutzen. Der GPU-Delegat ermöglicht es dem Interpreter, entsprechende Vorgänge auf der GPU des Geräts auszuführen.

Der folgende Code zeigt den von Java verwendeten GPU-Delegaten:

GpuDelegate delegate = new GpuDelegate();
Interpreter.Options options = (new Interpreter.Options()).addDelegate(delegate);
Interpreter interpreter = new Interpreter(tensorflow_lite_model_file, options);
try {
  interpreter.run(input, output);
}

Um die Unterstützung für neue Hardwarebeschleuniger hinzuzufügen, können Sie Ihren eigenen Delegaten definieren .

Android und iOS

Der TensorFlow Lite-Interpreter ist auf beiden wichtigen mobilen Plattformen einfach zu verwenden. Lesen Sie zunächst die Kurzanleitungen für Android-Schnellstart und iOS . Beispielanwendungen sind für beide Plattformen verfügbar.

Um die erforderlichen Bibliotheken zu erhalten, sollten Android-Entwickler den TensorFlow Lite AAR verwenden . iOS-Entwickler sollten die CocoaPods für Swift oder Objective-C verwenden .

Linux

Embedded Linux ist eine wichtige Plattform für die Bereitstellung von maschinellem Lernen. Befolgen Sie den Python-Schnellstart , um Python für die Inferenz mit Ihren TensorFlow Lite-Modellen zu verwenden .

Informationen zum Installieren der C ++ - Bibliothek finden Sie in den Build-Anweisungen für Raspberry Pi oder Arm64-basierte Karten (für Karten wie Odroid C2, Pine64 und NanoPi).

Mikrocontroller

TensorFlow Lite für Mikrocontroller ist ein experimenteller Port von TensorFlow Lite für Mikrocontroller und andere Geräte mit nur Kilobyte Speicher.

Operationen

Wenn für Ihr Modell TensorFlow-Operationen erforderlich sind, die noch nicht in TensorFlow Lite implementiert sind, können Sie sie mit TensorFlow Select in Ihrem Modell verwenden. Sie müssen eine benutzerdefinierte Version des Interpreters erstellen, die die TensorFlow-Operationen enthält.

Sie können benutzerdefinierte Operatoren verwenden , um Ihre eigenen Vorgänge zu schreiben oder neue Vorgänge in TensorFlow Lite zu portieren.

Mit Operator-Versionen können Sie vorhandenen Funktionen neue Funktionen und Parameter hinzufügen.

4. Optimieren Sie Ihr Modell

TensorFlow Lite bietet Tools zur Optimierung der Größe und Leistung Ihrer Modelle, häufig mit minimalem Einfluss auf die Genauigkeit. Optimierte Modelle erfordern möglicherweise etwas komplexere Schulungen, Konvertierungen oder Integrationen.

Die Optimierung des maschinellen Lernens entwickelt sich weiter und das Modelloptimierungs- Toolkit von TensorFlow Lite wächst kontinuierlich, wenn neue Techniken entwickelt werden.

Performance

Ziel der Modelloptimierung ist es, auf einem bestimmten Gerät das ideale Gleichgewicht zwischen Leistung, Modellgröße und Genauigkeit zu erreichen. Best Practices für die Leistung können Sie durch diesen Prozess führen.

Quantisierung

Durch Verringern der Genauigkeit von Werten und Operationen innerhalb eines Modells kann die Quantisierung sowohl die Größe des Modells als auch die für die Inferenz erforderliche Zeit verringern. Bei vielen Modellen gibt es nur einen minimalen Genauigkeitsverlust.

Der TensorFlow Lite-Konverter erleichtert die Quantisierung von TensorFlow-Modellen. Der folgende Python-Code quantisiert ein SavedModel und speichert es auf der Festplatte:

import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quantized_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_quantized_model)

TensorFlow Lite unterstützt die Reduzierung der Genauigkeit von Werten vom Gleitkommawert auf Gleitkommazahlen mit halber Genauigkeit (float16) oder 8-Bit-Ganzzahlen. Es gibt Kompromisse bei der Modellgröße und -genauigkeit für jede Auswahl, und einige Operationen haben die Implementierungen für diese Typen mit reduzierter Genauigkeit optimiert.

Weitere Informationen zur Quantisierung finden Sie unter Quantisierung nach dem Training .

Toolkit zur Modelloptimierung

Das Modelloptimierungs-Toolkit besteht aus einer Reihe von Tools und Techniken, die Entwicklern die Optimierung ihrer Modelle erleichtern sollen. Viele der Techniken können auf alle TensorFlow-Modelle angewendet werden und sind nicht spezifisch für TensorFlow Lite. Sie sind jedoch besonders nützlich, wenn Inferenzen auf Geräten mit begrenzten Ressourcen ausgeführt werden.

Nächste Schritte

Nachdem Sie mit TensorFlow Lite vertraut sind, sollten Sie einige der folgenden Ressourcen erkunden: