Nach­dem das Google Brain Team 2015 die beliebte open-source Biblio­thek Ten­sor­Flow zum Ent­wi­ckeln und Trai­nie­ren von Machine-Lear­ning-Model­len ver­öf­fent­licht hat, folgte nun zuletzt die Java­Script-Biblio­thek TensorFlow.js. Wäh­rend Ten­sor­Flow zum größ­ten Teil über eine Python API benutzt wird, las­sen sich mit TensorFlow.js Machine-Lear­ning-Modelle im Brow­ser oder auch mit Node.js (open-source, cross-plat­form, Java­Script Lauf­zeit­um­ge­bung) ent­wi­ckeln, trai­nie­ren und auch bereitstellen.

Machine Lear­ning im Browser

Ohne Pro­bleme kann TensorFlow.js jede Art von Machine-Lear­ning-Pro­jekt umset­zen. Für das Trai­nie­ren müs­sen keine zusätz­li­chen Biblio­the­ken oder Trei­ber instal­liert wer­den. Exis­tie­ren schon vor­trai­nierte Modelle, so las­sen sich auch diese in den Brow­ser ein­bin­den und bei Bedarf wei­ter trai­nie­ren – in die­sem Fall wird auch von Trans­fer-Lear­ning gespro­chen. Wurde ein Modell mit der Ten­sor­Flow Python API ent­wi­ckelt, kann man es leicht in ein TensorFlow.js Modell umwan­deln und im Brow­ser trai­nie­ren und aus­füh­ren. Abbil­dung 1 zeigt das Pose­Net, ein Machine-Lear­ning-Modell, wel­ches bereits so vor­trai­niert ist, dass es Posi­tio­nen von Gesich­tern, Armen und Bei­nen erkennt. Die Bedie­nung ist sehr ein­fach und erfor­dert kei­ner­lei Kennt­nisse im Bereich Machine Learning.

Tensorflow.js – Machine Learning im Browser Bild1
Abbil­dung 1 PoseNet

Inter­ak­tion im Browser

Anwen­dun­gen wie das Pose­Net ver­deut­li­chen die Stär­ken von TensorFlow.js. Brow­ser sind auf Inter­ak­tion mit dem Benut­zer aus­ge­legt und so gut wie alle Brow­ser unter­stüt­zen Java­Script. Durch den HTML5-Stan­dard ist es ein Ein­fa­ches auf Kame­ras, Mikro­fone aber auch auf Beschleu­ni­gungs­sen­so­ren oder Gyro­skope zuzu­grei­fen. Auch Daten­schüt­zer kön­nen beru­higt sein, da die Daten den Cli­ent nicht verlassen.

Per­for­mance im Vergleich

TensorFlow.js nutzt beim Trai­ning und der Aus­füh­rung von Model­len die Gra­fik­karte des Rech­ners über die Brow­ser-API WebGL und funk­tio­niert dadurch mit jeder Gra­fik­karte. Gegen­über Ten­sor­Flow ist dies ein Vor­teil, da Ten­sor­Flow zur­zeit nur NVI­DIA-GPUs unter­stützt. Die Per­for­mance lei­det jedoch unter der Anwen­dung im Brow­ser, denn Ten­so­Flow ist drei bis vier­mal so schnell wie TensorFlow.js. Als Aus­blick sollte jedoch ange­merkt wer­den, dass der neue WebGPU-Stan­dard, wel­cher WebGL ablö­sen soll, vor­aus­sicht­lich eine deut­li­che Ver­bes­se­rung der Per­for­mance mit sich brin­gen wird.

Fazit

TensorFlow.js öff­net neue Mög­lich­kei­ten im Bereich Machine Lear­ning. Durch die Imple­men­ta­tion im Brow­ser kön­nen selbst Laien Modelle trai­nie­ren und bedie­nen. Es bleibt abzu­war­ten, inwie­fern in Java­Script geschrie­bene Web­ap­pli­ka­tio­nen das Poten­tial von TensorFlow.js aus­nut­zen wer­den. Für den pro­fes­sio­nel­len Ein­satz im Rah­men eines Data-Sci­ence-Pro­jekts wird es jedoch vor­aus­sicht­lich noch nicht rei­chen, da der große Python Bru­der Ten­sor­Flow die bes­sere Per­for­mance lie­fert. Mit dem neuen WebGPU-Stan­dard könnte sich jedoch eini­ges ändern. Wir dür­fen gespannt bleiben.