© DrHitch/Shutterstock.com
Shortcuts
Einstieg ins Machine Learning

4 Was mit TensorFlow.js möglich ist

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, erklärt dieses Kapitel.

Shortcut Autorenteam


TensorFlow.js [1] ist eine JavaScript-Bibliothek, die sowohl im Browser als auch mit Node.js auf dem Server läuft. Wir interessieren uns in diesem Kapitel allerdings nur für die Anwendung im Browser. Die Schnittstelle von TensorFlow.js ist stark an TensorFlows High-Level API Keras [2] 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 GPUMit 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-GPUs über CUDA unterstützt, funktioniert TensorFlow.js mit jeder Grafikkarte. Listing 4.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 unter [3].// create a sequential modelconst 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 unitsmodel.add(tf.layers.conv2d({ inputShape: [28, 28, 1], filters: 8}));// compile the model like you would do in Keras// the API speaks for itselfmodel.compile({ optimizer: 'adam', loss: 'categoricalCrossentropy', metrics: ['accuracy']});Interaktion mit allen Browser-APIsDas Ansprechen von Schnittstellen auf unterschiedlichen Betriebssystemen und Geräten kann immer noch eine leidvolle Erfahrung sein. Nicht so, wenn man eine browserbasierte Anwendung entwickelt. Selbst der Zugriff auf so komplexe Hardware wie eine Kamera oder ein Mikrofon sind im HTML-Standard verankert und werden von allen akt...

Shortcuts
Einstieg ins Machine Learning

4 Was mit TensorFlow.js möglich ist

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, erklärt dieses Kapitel.

Shortcut Autorenteam


TensorFlow.js [1] ist eine JavaScript-Bibliothek, die sowohl im Browser als auch mit Node.js auf dem Server läuft. Wir interessieren uns in diesem Kapitel allerdings nur für die Anwendung im Browser. Die Schnittstelle von TensorFlow.js ist stark an TensorFlows High-Level API Keras [2] 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 GPUMit 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-GPUs über CUDA unterstützt, funktioniert TensorFlow.js mit jeder Grafikkarte. Listing 4.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 unter [3].// create a sequential modelconst 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 unitsmodel.add(tf.layers.conv2d({ inputShape: [28, 28, 1], filters: 8}));// compile the model like you would do in Keras// the API speaks for itselfmodel.compile({ optimizer: 'adam', loss: 'categoricalCrossentropy', metrics: ['accuracy']});Interaktion mit allen Browser-APIsDas Ansprechen von Schnittstellen auf unterschiedlichen Betriebssystemen und Geräten kann immer noch eine leidvolle Erfahrung sein. Nicht so, wenn man eine browserbasierte Anwendung entwickelt. Selbst der Zugriff auf so komplexe Hardware wie eine Kamera oder ein Mikrofon sind im HTML-Standard verankert und werden von allen akt...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang