Am veröffentlicht

Tensorflow.js – Machine Learning im Browser

Nachdem das Google Brain Team 2015 die beliebte open-source Bibliothek TensorFlow zum Entwickeln und Trainieren von Machine-Learning-Modellen veröffentlicht hat, folgte nun zuletzt die JavaScript-Bibliothek TensorFlow.js. Während TensorFlow zum größten Teil über eine Python API benutzt wird, lassen sich mit TensorFlow.js Machine-Learning-Modelle im Browser oder auch mit Node.js (open-source, cross-platform, JavaScript Laufzeitumgebung) entwickeln, trainieren und auch bereitstellen.

Machine Learning im Browser

Ohne Probleme kann TensorFlow.js jede Art von Machine-Learning-Projekt umsetzen. Für das Trainieren müssen keine zusätzlichen Bibliotheken oder Treiber installiert werden. Existieren schon vortrainierte Modelle, so lassen sich auch diese in den Browser einbinden und bei Bedarf weiter trainieren – in diesem Fall wird auch von Transfer-Learning gesprochen. Wurde ein Modell mit der TensorFlow Python API entwickelt, kann man es leicht in ein TensorFlow.js Modell umwandeln und im Browser trainieren und ausführen. Abbildung 1 zeigt das PoseNet, ein Machine-Learning-Modell, welches bereits so vortrainiert ist, dass es Positionen von Gesichtern, Armen und Beinen erkennt. Die Bedienung ist sehr einfach und erfordert keinerlei Kenntnisse im Bereich Machine Learning.

Abbildung 1: PoseNet

Interaktion im Browser

Anwendungen wie das PoseNet verdeutlichen die Stärken von TensorFlow.js. Browser sind auf Interaktion mit dem Benutzer ausgelegt und so gut wie alle Browser unterstützen JavaScript. Durch den HTML5-Standard ist es ein Einfaches auf Kameras, Mikrofone aber auch auf Beschleunigungssensoren oder Gyroskope zuzugreifen. Auch Datenschützer können beruhigt sein, da die Daten den Client nicht verlassen.

Performance im Vergleich

TensorFlow.js nutzt beim Training und der Ausführung von Modellen die Grafikkarte des Rechners über die Browser-API WebGL und funktioniert dadurch mit jeder Grafikkarte. Gegenüber TensorFlow ist dies ein Vorteil, da TensorFlow zurzeit nur NVIDIA-GPUs unterstützt. Die Performance leidet jedoch unter der Anwendung im Browser, denn TensoFlow ist drei bis viermal so schnell wie TensorFlow.js. Als Ausblick sollte jedoch angemerkt werden, dass der neue WebGPU-Standard, welcher WebGL ablösen soll, voraussichtlich eine deutliche Verbesserung der Performance mit sich bringen wird.

Fazit

TensorFlow.js öffnet neue Möglichkeiten im Bereich Machine Learning. Durch die Implementation im Browser können selbst Laien Modelle trainieren und bedienen. Es bleibt abzuwarten, inwiefern in JavaScript geschriebene Webapplikationen das Potential von TensorFlow.js ausnutzen werden. Für den professionellen Einsatz im Rahmen eines Data-Science-Projekts wird es jedoch voraussichtlich noch nicht reichen, da der große Python Bruder TensorFlow die bessere Performance liefert. Mit dem neuen WebGPU-Standard könnte sich jedoch einiges ändern. Wir dürfen gespannt bleiben.