Oliver Zeigermann Selbstständig

„Machine Learning im Browser erscheint im ersten Moment für viele Entwickler nicht sonderlich sinnvoll. Wenn man jedoch etwas genauer hinsieht, ergeben sich Anwendungsmöglichkeiten, die sonst keine andere Plattform bieten kann.“

Wenn man über Machine Learning und Googles TensorFlow spricht, denken die meisten Leute eher an Python und spezialisierte Hardware als an JavaScript und einen beliebigen Browser. Was TensorFlow.js kann und warum es Sinn ergibt, Machine Learning im Browser zu betreiben, klärt dieser Artikel.

TensorFlow.js ist eine JavaScript-Bibliothek, die sowohl im Browser als auch mit Node.js auf dem Server läuft. Wir interessieren uns in diesem Artikel allerdings nur für die Anwendung im Browser. Die Schnittstelle von TensorFlow.js ist stark an TensorFlows High Level API Keras angelehnt. Keras-Code ist oft nur auf den zweiten Blick von TensorFlow.js-Code zu unterscheiden. Die meisten Unterschiede gehen auf die unterschiedlichen Sprachkonstrukte von Python und JavaScript für Konfigurationsparameter zurück.

Machine Learning mit jeder GPU

Mit TensorFlow.js lassen sich Machine-Learning-Projekte von null auf erstellen. Stehen die notwendigen Daten zur Verfügung, können Modelle direkt im Browser trainiert und ausgeführt werden. Dabei nutzt TensorFlow.js die Grafikkarte (GPU) des Rechners über das Browser-API WebGL. Man verliert dadurch zwar etwas Performance, weil WebGL nur durch ein paar Tricks dazu gebracht werden kann, die von TensorFlow.js gewünschten Matrixmultiplikationen auszuführen. Doch die sind notwendig, da TensorFlow.js als Strategie für Machine Learning hauptsächlich neuronale Netzwerke unterstützt. Diese sind sowohl beim Training, als auch bei der Vorhersage sehr gut durch Matrixmultiplikationen abbildbar. Hier sehen wir schon den ersten Vorteil von TensorFlow.js gegenüber TensorFlow: Während TensorFlow zurzeit nur NVIDIA-GPU über CUDA unterstützt, funktioniert TensorFlow.js mit jeder Grafikkarte. Listing 1 enthält den Code, um mit dem High Level API ein sequenzielles neuronales Netzwerk im Browser zu erstellen. Wer TensorFlows Keras API kennt, kommt hier sehr schnell klar. Tutorials finden sich auf der TensorFlow.js Webseite.

// create a sequential model
const model = tf.sequential();

// add a fully connected layer with 10 units (neurons)
model.add(tf.layers.dense({units: 10}));

// add a convolutional layer to work on a monochrome 28x28 pixel image with 8
// filter units
model.add(tf.layers.conv2d({
  inputShape: [28, 28, 1],
  filters: 8
}));

// compile the model like you would do in Keras
// the API speaks for itself
model.compile({
  optimizer: 'adam',
  loss: 'categoricalCrossentropy',
  metrics: ['accuracy']
});

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin Spezial Vol.17: Machine Learning - "Machine Learning"

Alle Infos zum Heft
579858877Machine Learning im Browser mit TensorFlow.js
X
- Gib Deinen Standort ein -
- or -