1. Einführung
Sie haben also erste Schritte mit TensorFlow.js unternommen, unsere vorgefertigten Modelle ausprobiert oder vielleicht sogar eigene erstellt. Nun haben Sie aber einige bahnbrechende Forschungsergebnisse in Python gesehen und fragen sich, ob sie im Webbrowser ausgeführt werden können, um Ihre coole Idee für Millionen von Menschen auf skalierbare Weise zu verwirklichen. Kommt dir das bekannt vor? Dann ist dieses Codelab genau das Richtige für Sie.
Das TensorFlow.js-Team hat ein praktisches Tool zum Konvertieren von Modellen im SavedModel-Format in TensorFlow.js über einen Befehlszeilenkonverter entwickelt. So können Sie solche Modelle mit der Reichweite und Skalierbarkeit des Webs verwenden.
Lerninhalte
In diesem Codelab erfahren Sie, wie Sie den TensorFlow.js-Befehlszeilenkonverter verwenden, um ein in Python generiertes SavedModel in das für die clientseitige Ausführung in einem Webbrowser erforderliche Format „model.json“ zu portieren.
Im Detail:
- So erstellen Sie ein einfaches Python-ML-Modell und speichern es im erforderlichen Format für den TensorFlow.js-Konverter.
- So installieren und verwenden Sie den TensorFlow.js-Converter für das SavedModel, das Sie aus Python exportiert haben.
- Verwenden Sie die resultierenden Dateien aus der Konvertierung in Ihrer JS-Webanwendung.
- Hier erfahren Sie, was Sie tun können, wenn etwas schiefgeht (nicht alle Modelle werden konvertiert) und welche Optionen Sie haben.
Stellen Sie sich vor, Sie könnten eine neu veröffentlichte Studie nutzen und das Modell Millionen von JavaScript-Entwicklern weltweit zur Verfügung stellen. Vielleicht nutzen Sie es aber auch selbst für Ihre eigenen Kreationen, die dann von jedem auf der Welt genutzt werden können, wenn sie im Webbrowser ausgeführt werden, da keine komplexen Abhängigkeiten oder Umgebungseinrichtungen erforderlich sind. Bist du bereit, loszulegen? Los gehts!
Teilen Sie uns mit, was Sie konvertieren.
Sie können das, was wir heute lernen, nutzen, um einige Ihrer bevorzugten Modelle aus Python zu konvertieren. Wenn Sie das Modell erfolgreich in eine funktionierende Demo-Website einbinden, können Sie uns in den sozialen Medien mit dem Hashtag #MadeWithTFJS taggen. Mit etwas Glück wird Ihr Projekt dann in unserem TensorFlow-Blog oder bei zukünftigen Show-and-Tell-Veranstaltungen vorgestellt. Wir würden uns freuen, wenn mehr großartige Forschungsergebnisse ins Web übertragen würden, damit mehr Menschen solche Modelle auf innovative oder kreative Weise nutzen können, wie in diesem Beispiel.
2. Was ist TensorFlow.js?

TensorFlow.js ist eine Open-Source-Bibliothek für maschinelles Lernen, die überall ausgeführt werden kann, wo JavaScript ausgeführt werden kann. Sie basiert auf der ursprünglichen TensorFlow-Bibliothek, die in Python geschrieben wurde, und zielt darauf ab, diese Entwicklerumgebung und die APIs für das JavaScript-Ökosystem neu zu erstellen.
Wo kann sie verwendet werden?
Da JavaScript portabel ist, können Sie jetzt in einer Sprache schreiben und problemlos maschinelles Lernen auf allen folgenden Plattformen ausführen:
- Clientseitig im Webbrowser mit nativem JavaScript
- Serverseitig und sogar auf IoT-Geräten wie Raspberry Pi mit Node.js
- Desktop-Apps mit Electron
- Native mobile Apps mit React Native
TensorFlow.js unterstützt auch mehrere Back-Ends in jeder dieser Umgebungen (die tatsächlichen Hardware-basierten Umgebungen, in denen es ausgeführt werden kann, z. B. die CPU oder WebGL). Ein „Backend“ bedeutet in diesem Zusammenhang keine serverseitige Umgebung. Das Backend für die Ausführung kann beispielsweise clientseitig in WebGL sein, um Kompatibilität zu gewährleisten und die Ausführung zu beschleunigen. Derzeit unterstützt TensorFlow.js Folgendes:
- WebGL-Ausführung auf der Grafikkarte (GPU) des Geräts: Dies ist die schnellste Methode, um größere Modelle (über 3 MB) mit GPU-Beschleunigung auszuführen.
- WebAssembly-Ausführung (WASM) auf der CPU: Damit wird die CPU-Leistung auf allen Geräten verbessert, auch auf älteren Smartphones. Diese Methode eignet sich besser für kleinere Modelle (unter 3 MB), die aufgrund des Aufwands für das Hochladen von Inhalten auf einen Grafikprozessor mit WASM auf der CPU schneller ausgeführt werden können als mit WebGL.
- CPU-Ausführung: Der Fallback, wenn keine der anderen Umgebungen verfügbar ist. Diese Methode ist die langsamste der drei, steht Ihnen aber immer zur Verfügung.
Hinweis:Sie können eines dieser Backends erzwingen, wenn Sie wissen, auf welchem Gerät Sie die Ausführung durchführen, oder Sie können TensorFlow.js die Entscheidung überlassen, wenn Sie dies nicht angeben.
Clientseitige Superkräfte
Die Ausführung von TensorFlow.js im Webbrowser auf dem Clientcomputer kann mehrere Vorteile haben, die es wert sind, berücksichtigt zu werden.
Datenschutz
Sie können Daten auf dem Clientcomputer trainieren und klassifizieren, ohne Daten an einen Webserver eines Drittanbieters zu senden. Dies kann erforderlich sein, um lokale Gesetze wie die DSGVO einzuhalten oder um Daten zu verarbeiten, die der Nutzer auf seinem Gerät behalten und nicht an Dritte senden möchte.
Geschwindigkeit
Da Sie keine Daten an einen Remote-Server senden müssen, kann die Inferenz (die Klassifizierung der Daten) schneller erfolgen. Noch besser: Sie haben direkten Zugriff auf die Sensoren des Geräts, z. B. Kamera, Mikrofon, GPS und Beschleunigungsmesser, wenn der Nutzer Ihnen den Zugriff gewährt.
Reichweite und Skalierung
Mit einem Klick kann jeder auf der Welt einen Link anklicken, den Sie ihm senden, die Webseite in seinem Browser öffnen und Ihre Inhalte nutzen. Für die Verwendung des Systems für maschinelles Lernen ist keine komplexe serverseitige Linux-Einrichtung mit CUDA-Treibern und vielem mehr erforderlich.
Kosten
Da keine Server erforderlich sind, müssen Sie nur für ein CDN bezahlen, um Ihre HTML-, CSS-, JS- und Modelldateien zu hosten. Die Kosten für ein CDN sind viel geringer als die Kosten für einen Server, der rund um die Uhr läuft (möglicherweise mit einer Grafikkarte).
Serverseitige Funktionen
Die Node.js-Implementierung von TensorFlow.js bietet die folgenden Funktionen.
Volle CUDA-Unterstützung
Auf der Serverseite müssen Sie zur Beschleunigung der Grafikkarte die NVIDIA CUDA-Treiber installieren, damit TensorFlow mit der Grafikkarte arbeiten kann (im Gegensatz zum Browser, der WebGL verwendet – keine Installation erforderlich). Mit vollständiger CUDA-Unterstützung können Sie jedoch die Low-Level-Funktionen der Grafikkarte voll ausschöpfen, was zu schnelleren Trainings- und Inferenzzeiten führt. Die Leistung ist mit der Python-TensorFlow-Implementierung vergleichbar, da beide dasselbe C++-Backend verwenden.
Modellgröße
Bei hochmodernen Modellen aus der Forschung arbeiten Sie möglicherweise mit sehr großen Modellen, die mehrere Gigabyte groß sind. Diese Modelle können derzeit aufgrund der Einschränkungen der Arbeitsspeichernutzung pro Browser-Tab nicht im Webbrowser ausgeführt werden. Um diese größeren Modelle auszuführen, können Sie Node.js auf Ihrem eigenen Server mit den Hardwareanforderungen verwenden, die für die effiziente Ausführung eines solchen Modells erforderlich sind.
IoT
Node.js wird auf beliebten Einplatinencomputern wie dem Raspberry Pi unterstützt. Das bedeutet, dass Sie TensorFlow.js-Modelle auch auf solchen Geräten ausführen können.
Geschwindigkeit
Node.js ist in JavaScript geschrieben, was bedeutet, dass es von der Just-in-Time-Kompilierung profitiert. Das bedeutet, dass Sie bei der Verwendung von Node.js oft eine Leistungssteigerung feststellen werden, da es zur Laufzeit optimiert wird, insbesondere für die Vorverarbeitung. Ein gutes Beispiel dafür ist diese Fallstudie, in der beschrieben wird, wie Hugging Face mit Node.js die Leistung seines Modells für die Verarbeitung natürlicher Sprache verdoppelt hat.
Nachdem Sie nun die Grundlagen von TensorFlow.js, die Ausführungsumgebung und einige Vorteile kennen, können wir mit der praktischen Anwendung beginnen.
3. System einrichten
In dieser Anleitung verwenden wir Ubuntu, eine beliebte Linux-Distribution, die von vielen verwendet wird und in der Compute Engine von Google Cloud als Basis-Image verfügbar ist, wenn Sie die Anleitung auf einer cloudbasierten virtuellen Maschine ausführen möchten.
Zum Zeitpunkt der Erstellung dieses Dokuments können wir das Image von Ubuntu 18.04.4 LTS auswählen, wenn wir eine neue Compute Engine-Standardinstanz erstellen. Sie können natürlich Ihren eigenen Computer oder sogar ein anderes Betriebssystem verwenden, aber die Installationsanleitung und die Abhängigkeiten können sich zwischen den Systemen unterscheiden.
TensorFlow installieren (Python-Version)
Wenn Sie ein vorhandenes Python-basiertes Modell konvertieren möchten, müssen Sie die Python-Version von TensorFlow auf Ihrer Instanz einrichten, bevor Sie eine „SavedModel“-Datei aus Python exportieren können, sofern das „SavedModel“ noch nicht zum Herunterladen verfügbar ist.
Stellen Sie eine SSH-Verbindung zu der oben erstellten Cloud-Maschine her und geben Sie Folgendes in das Terminalfenster ein:
Terminalfenster:
sudo apt update
sudo apt-get install python3
So stellen wir sicher, dass Python 3 auf dem Computer installiert ist. Für die Verwendung von TensorFlow muss Python 3.4 oder höher installiert sein.
Geben Sie Folgendes ein, um zu prüfen, ob die richtige Version installiert ist:
Terminalfenster:
python3 --version
Es sollte eine Ausgabe mit der Versionsnummer angezeigt werden, z. B. Python 3.6.9. Wenn der Wert korrekt gedruckt wird und höher als 3,4 ist, können wir fortfahren.
Als Nächstes installieren wir PIP für Python 3, den Paketmanager von Python, und aktualisieren ihn. Typ:
Terminalfenster:
sudo apt install python3-pip
pip3 install --upgrade pip
Die Installation von pip3 kann wieder mit folgendem Befehl geprüft werden:
Terminalfenster:
pip3 --version
Zum Zeitpunkt der Erstellung dieses Dokuments wird nach Ausführung dieses Befehls pip 20.2.3 im Terminal ausgegeben.
Bevor wir TensorFlow installieren können, muss das Python-Paket „setuptools“ mindestens Version 41.0.0 haben. Führen Sie den folgenden Befehl aus, um sicherzustellen, dass die neueste Version installiert ist:
Terminalfenster:
pip3 install -U setuptools
Jetzt können wir TensorFlow für Python installieren:
Terminalfenster:
pip3 install tensorflow
Dieser Vorgang kann einige Zeit dauern. Warten Sie, bis er abgeschlossen ist.
Prüfen wir, ob TensorFlow richtig installiert ist. Erstellen Sie in Ihrem aktuellen Verzeichnis eine Python-Datei mit dem Namen test.py:
Terminalfenster:
nano test.py
Sobald nano geöffnet ist, können wir etwas Python-Code schreiben, um die Version von TensorFlow auszugeben, die installiert ist:
test.py:
import tensorflow as tf
print(tf.__version__)
Drücken Sie CTRL + O, um die Änderungen auf die Festplatte zu schreiben, und dann CTRL + X, um den Nano-Editor zu beenden.
Wir können diese Python-Datei jetzt ausführen, um die Version von TensorFlow auf dem Bildschirm ausgeben zu lassen:
Terminalfenster:
python3 test.py
Zum Zeitpunkt der Erstellung dieses Dokuments wird 2.3.1 in der Konsole für unsere installierte Version von TensorFlow Python ausgegeben.
4. Python-Modell erstellen
Im nächsten Schritt dieses Codelabs wird gezeigt, wie Sie ein einfaches Python-Modell erstellen, um zu demonstrieren, wie wir dieses trainierte Modell im Format „SavedModel“ speichern können, um es dann mit unserem TensorFlow.js-Befehlszeilenkonverter zu verwenden. Das Prinzip wäre für jedes Python-Modell, das Sie konvertieren möchten, ähnlich. Wir halten diesen Code jedoch einfach, damit ihn jeder verstehen kann.
Bearbeiten wir die Datei „test.py“, die wir im ersten Abschnitt erstellt haben, und aktualisieren wir den Code wie folgt:
test.py:
import tensorflow as tf
print(tf.__version__)
# Import NumPy - package for working with arrays in Python.
import numpy as np
# Import useful keras functions - this is similar to the
# TensorFlow.js Layers API functionality.
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense
# Create a new dense layer with 1 unit, and input shape of [1].
layer0 = Dense(units=1, input_shape=[1])
model = Sequential([layer0])
# Compile the model using stochastic gradient descent as optimiser
# and the mean squared error loss function.
model.compile(optimizer='sgd', loss='mean_absolute_error')
# Provide some training data! Here we are using some fictional data
# for house square footage and house price (which is simply 1000x the
# square footage) which our model must learn for itself.
xs = np.array([800.0, 850.0, 900.0, 950.0, 980.0, 1000.0, 1050.0, 1075.0, 1100.0, 1150.0, 1200.0, 1250.0, 1300.0, 1400.0, 1500.0, 1600.0, 1700.0, 1800.0, 1900.0, 2000.0], dtype=float)
ys = np.array([800000.0, 850000.0, 900000.0, 950000.0, 980000.0, 1000000.0, 1050000.0, 1075000.0, 1100000.0, 1150000.0, 1200000.0, 1250000.0, 1300000.0, 1400000.0, 1500000.0, 1600000.0, 1700000.0, 1800000.0, 1900000.0, 2000000.0], dtype=float)
# Train the model for 500 epochs.
model.fit(xs, ys, epochs=500, verbose=0)
# Test the trained model on a test input value
print(model.predict([1200.0]))
# Save the model we just trained to the "SavedModel" format to the
# same directory our test.py file is located.
tf.saved_model.save(model, './')
Mit diesem Code wird eine sehr einfache lineare Regression trainiert, um die Beziehung zwischen den bereitgestellten x-Werten (Eingaben) und y-Werten (Ausgaben) zu schätzen. Das resultierende trainierte Modell wird dann auf der Festplatte gespeichert. Weitere Informationen dazu, was die einzelnen Zeilen bewirken, finden Sie in den Inline-Kommentaren.
Wenn wir unser Verzeichnis nach dem Ausführen dieses Programms prüfen (durch Aufrufen von python3 test.py), sollten wir nun einige neue Dateien und Ordner in unserem aktuellen Verzeichnis sehen:
- test.py
- saved_model.pb
- Assets
- variables
Wir haben jetzt die Dateien generiert, die vom TensorFlow.js-Konverter benötigt werden, um dieses Modell für die Ausführung im Browser zu konvertieren.
5. SavedModel in TensorFlow.js-Format konvertieren
TensorFlow.js-Konverter installieren
Führen Sie den folgenden Befehl aus, um den Konverter zu installieren:
Terminalfenster:
pip3 install tensorflowjs
Das war einfach.
Angenommen, wir verwenden den Befehlszeilenkonverter (tensorflowjs_converter) und nicht die oben gezeigte Assistentenversion. Dann können wir den folgenden Befehl aufrufen, um das gerade erstellte gespeicherte Modell zu konvertieren und die Parameter explizit an den Konverter zu übergeben:
Terminalfenster:
tensorflowjs_converter \
--input_format=keras_saved_model \
./ \
./predict_houses_tfjs
Was ist hier los? Zuerst rufen wir die gerade installierte Binärdatei „tensorflowjs_converter“ auf und geben an, dass wir versuchen, ein gespeichertes Keras-Modell zu konvertieren.
Im obigen Beispielcode haben wir Keras importiert und die APIs für die übergeordneten Ebenen verwendet, um unser Modell zu erstellen. Wenn Sie Keras nicht in Ihrem Python-Code verwendet haben, sollten Sie möglicherweise ein anderes Eingabeformat verwenden:
- keras: zum Laden des Keras-Formats (HDF5-Dateityp)
- tf_saved_model: zum Laden von Modellen, die TensorFlow Core APIs anstelle von Keras verwenden.
- tf_frozen_model: zum Laden eines Modells mit eingefrorenen Gewichten.
- tf_hub: zum Laden eines Modells, das aus TensorFlow Hub generiert wurde.
Weitere Informationen zu diesen anderen Formaten
Mit den nächsten beiden Parametern wird angegeben, in welchem Ordner sich das gespeicherte Modell befindet. In unserem Beispiel oben geben wir das aktuelle Verzeichnis an. Schließlich geben wir an, in welches Verzeichnis wir die Konvertierung ausgeben möchten. Oben haben wir ein Verzeichnis namens „predict_houses_tfjs“ im aktuellen Verzeichnis angegeben.
Wenn Sie den obigen Befehl ausführen, wird im aktuellen Verzeichnis ein neuer Ordner mit dem Namen predict_houses_tfjs erstellt, der : enthält.
- model.json
- Group1-shard1of1.bin
Das sind die Dateien, die wir benötigen, um das Modell im Webbrowser auszuführen. Speichern Sie diese Dateien, da wir sie im nächsten Abschnitt verwenden werden.
6. Konvertiertes Modell im Browser verwenden
Konvertierte Dateien hosten
Zuerst müssen wir die Dateien model.json und *.bin, die auf einem Webserver generiert wurden, auf einem Webserver platzieren, damit wir über unsere Webseite darauf zugreifen können. In dieser Demo verwenden wir Glitch.com, damit Sie die Schritte einfach nachvollziehen können. Wenn Sie jedoch Webentwickler sind, können Sie stattdessen einen einfachen HTTP-Server auf Ihrer aktuellen Ubuntu-Serverinstanz starten. Die Entscheidung liegt ganz bei dir.
Dateien in Glitch hochladen
- Melden Sie sich auf Glitch.com an.
- Klonen Sie unser Boilerplate-TensorFlow.js-Projekt über diesen Link. Diese enthält ein Skelett für HTML-, CSS- und JS-Dateien, in denen die TensorFlow.js-Bibliothek importiert wird.
- Klicken Sie im linken Bereich auf den Ordner „Assets“.
- Klicken Sie auf „Asset hochladen“ und wählen Sie
group1-shard1of1.binaus, um es in diesen Ordner hochzuladen. Nach dem Hochladen sollte es so aussehen:
- Wenn Sie auf die gerade hochgeladene
group1-shard1of1.bin-Datei klicken, können Sie die URL zu ihrem Speicherort kopieren. Kopieren Sie diesen Pfad jetzt wie gezeigt:
- Bearbeiten Sie nun
model.jsonmit Ihrem bevorzugten Texteditor auf Ihrem lokalen Computer und suchen Sie (mit Strg + F) nach der Dateigroup1-shard1of1.bin, die darin irgendwo erwähnt wird.
Ersetzen Sie diesen Dateinamen durch die URL, die Sie in Schritt 5 kopiert haben. Löschen Sie jedoch das führende https://cdn.glitch.com/, das durch den kopierten Pfad generiert wird.
Nach der Bearbeitung sollte die Datei etwa so aussehen (beachten Sie, dass der führende Serverpfad entfernt wurde, sodass nur der resultierende hochgeladene Dateiname beibehalten wird):
7. Speichern Sie die bearbeitete model.json-Datei und laden Sie sie in Glitch hoch. Klicken Sie dazu auf „Assets“ und dann auf die Schaltfläche „Asset hochladen“ (wichtig). Wenn Sie die physische Schaltfläche nicht verwenden und die Datei per Drag-and-drop hochladen, wird sie als bearbeitbare Datei und nicht im CDN hochgeladen. Sie befindet sich dann nicht im selben Ordner und es wird ein relativer Pfad angenommen, wenn TensorFlow.js versucht, die Binärdateien für ein bestimmtes Modell herunterzuladen. Wenn Sie alles richtig gemacht haben, sollten Sie im Ordner assets zwei Dateien sehen, wie hier: 
Sehr gut! Jetzt können wir unsere gespeicherten Dateien mit echtem Code im Browser verwenden.
Modell laden
Nachdem wir unsere konvertierten Dateien gehostet haben, können wir eine einfache Webseite schreiben, um diese Dateien zu laden und damit eine Vorhersage zu treffen. Öffnen Sie script.js im Glitch-Projektordner und ersetzen Sie den Inhalt dieser Datei durch den folgenden. Achten Sie darauf, dass const MODEL_URL auf den generierten Glitch.com-Link für die model.json-Datei verweist, die Sie auf Glitch hochgeladen haben:
script.js:
// Grab a reference to our status text element on the web page.
// Initially we print out the loaded version of TFJS.
const status = document.getElementById('status');
status.innerText = 'Loaded TensorFlow.js - version: ' + tf.version.tfjs;
// Specify location of our Model.json file we uploaded to the Glitch.com CDN.
const MODEL_URL = ‘YOUR MODEL.JSON URL HERE! CHANGE THIS!';
// Specify a test value we wish to use in our prediction.
// Here we use 950, so we expect the result to be close to 950,000.
const TEST_VALUE = 950.0
// Create an asynchronous function.
async function run() {
// Load the model from the CDN.
const model = await tf.loadLayersModel(MODEL_URL);
// Print out the architecture of the loaded model.
// This is useful to see that it matches what we built in Python.
console.log(model.summary());
// Create a 1 dimensional tensor with our test value.
const input = tf.tensor1d([TEST_VALUE]);
// Actually make the prediction.
const result = model.predict(input);
// Grab the result of prediction using dataSync method
// which ensures we do this synchronously.
status.innerText = 'Input of ' + TEST_VALUE +
'sqft predicted as $' + result.dataSync()[0];
}
// Call our function to start the prediction!
run();
Wenn Sie den obigen Code ausführen, nachdem Sie die Konstante MODEL_URL so geändert haben, dass sie auf Ihren model.json-Pfad verweist, wird die unten gezeigte Ausgabe generiert.

Wenn wir die Konsole des Webbrowsers untersuchen (mit F12 rufen Sie die Entwicklertools im Browser auf), sehen wir auch die Modellbeschreibung für das geladene Modell:

Wenn wir das mit unserem Python-Code am Anfang dieses Codelabs vergleichen, können wir bestätigen, dass es sich um dasselbe Netzwerk handelt, das wir mit einem dichten Eingabe- und einem dichten Layer mit einem Knoten erstellt haben.
Glückwunsch! Sie haben gerade ein konvertiertes, in Python trainiertes Modell im Webbrowser ausgeführt.
7. Modelle ohne Conversion
Es kann vorkommen, dass komplexere Modelle, die für die Kompilierung weniger häufig verwendete Vorgänge nutzen, nicht für die Konvertierung unterstützt werden. Die browserbasierte Version von TensorFlow.js ist eine vollständige Neufassung von TensorFlow. Daher werden derzeit nicht alle Low-Level-Vorgänge unterstützt, die in der TensorFlow C++ API verfügbar sind (es gibt Tausende). Im Laufe der Zeit werden jedoch weitere hinzugefügt, wenn wir wachsen und die Core-Vorgänge stabiler werden.
Zum Zeitpunkt der Erstellung dieses Dokuments ist linalg.diag eine solche Funktion in TensorFlow Python, die beim Exportieren als SavedModel einen nicht unterstützten Vorgang generiert. Wenn wir versuchen, ein SavedModel, das dies verwendet, in Python zu konvertieren (das die resultierenden Operationen unterstützt), wird ein Fehler ähnlich dem unten gezeigten angezeigt:

Hier sehen wir rot hervorgehoben, dass der linalg.diag-Aufruf in einen Vorgang namens MatrixDiagV3 kompiliert wurde, der zum Zeitpunkt der Erstellung dieses Codelabs nicht von TensorFlow.js im Webbrowser unterstützt wird.
Was muss ich tun?
Sie haben zwei Optionen.
- Implementieren Sie diese fehlende Operation in TensorFlow.js. Wir sind ein Open-Source-Projekt und freuen uns über Beiträge wie neue Operationen. Anleitung zum Schreiben neuer Operationen für TensorFlow.js Wenn Sie das schaffen, können Sie das Flag
Skip_op_checkin unserem Befehlszeilenkonverter verwenden, um diesen Fehler zu ignorieren und die Konvertierung fortzusetzen. Es wird dann davon ausgegangen, dass dieser Vorgang in Ihrem neuen TensorFlow.js-Build verfügbar ist, der die fehlende Operation unterstützt. - Ermitteln Sie, welcher Teil Ihres Python-Codes die nicht unterstützte Operation in der exportierten Datei
savedmodelverursacht hat. Bei einem kleinen Code-Set ist dies möglicherweise einfach zu finden, bei komplexeren Modellen kann dies jedoch einige Zeit in Anspruch nehmen, da es derzeit keine Methode gibt, um den Python-Funktionsaufruf auf hoher Ebene zu identifizieren, der einen bestimmten Vorgang imsavedmodel-Dateiformat erzeugt hat. Sobald Sie den Standort gefunden haben, können Sie ihn möglicherweise ändern und eine andere unterstützte Methode verwenden.
8. Glückwunsch
Herzlichen Glückwunsch! Sie haben die ersten Schritte zur Verwendung eines Python-Modells über TensorFlow.js im Webbrowser abgeschlossen.
Zusammenfassung
In diesem Codelab haben wir Folgendes gelernt:
- Linux-Umgebung für die Installation von TensorFlow auf Python einrichten
- Python-„SavedModel“ exportieren
- TensorFlow.js-Befehlszeilenkonverter installieren
- Verwenden Sie den TensorFlow.js-Befehlszeilenkonverter, um die erforderlichen clientseitigen Dateien zu erstellen.
- Generierte Dateien in einer echten Webanwendung verwenden
- Identifizieren Sie die Modelle, die nicht konvertiert werden, und was implementiert werden müsste, damit sie in Zukunft konvertiert werden können.
Nächste Schritte
Vergessen Sie nicht, uns in allem zu taggen, was Sie mit #MadeWithTFJS erstellen. So haben Sie die Chance, in den sozialen Medien vorgestellt oder sogar bei zukünftigen TensorFlow-Veranstaltungen präsentiert zu werden. Wir sind gespannt, was Sie konvertieren und clientseitig im Browser verwenden.
Weitere TensorFlow.js-Codelabs
- Neuronales Netzwerk von Grund auf in TensorFlow.js schreiben
- Smarte Webcam erstellen, die Objekte erkennen kann
- Benutzerdefinierte Bildklassifizierung mit Lerntransfer in TensorFlow.js