Tensorflow.js étend la bibliothèque de machine learning open source TensorFlow de Google à JavaScript pour entraîner et déployer des modèles d'apprentissage machine dans le navigateur. Accélérée par WebGL, la bibliothèque Tensorflow.js fonctionne également avec le runtime JavaScript côté serveur Node.js et fait partie de l'écosystème TensorFlow. L’intégration de l'apprentissage machine directement dans le navigateur permet aux développeurs de se passer de pilotes et d’exécuter le code directement. Le projet, qui comprend un écosystème d'outils JavaScript, est basé sur la bibliothèque Deeplearn.js, une autre bibliothèque JavaScript qui permet de faire du machine learning directement dans le navigateur. Deeplearn.js est maintenant connu sous le nom de Tensorflow.js Core.
Les APIs de TensorFlow.js peuvent être utilisées pour construire des modèles en utilisant la bibliothèque d'algèbre linéaire JavaScript de bas niveau ou l'API des couches de plus haut niveau. Les convertisseurs de modèle TensorFlow.js peuvent faire tourner des modèles existants dans le navigateur ou sous Node.js. Les modèles existants peuvent être ré-entraînés à l'aide des données des capteurs connectés au navigateur. Un tenseur sert d'unité centrale pour les données. De plus, une API de haut niveau dans le genre de Keras est incluse pour construire des réseaux neuronaux. Cependant, TensorFlow.js n'est pas la seule bibliothèque JavaScript conçue pour les réseaux neuronaux : TensorFire, développée par des étudiants du MIT, est également capable d’exécuter des réseaux neuronaux dans une page Web.
Une API pour accéder au service
Tensorflow.js dispose d’une API similaire à l'API Python de Tensorflow. Sauf que, pour l’instant, l'API JavaScript ne supporte pas toutes les fonctionnalités de l'API Python. Les développeurs de Tensorflow.js s'engagent à offrir un niveau équivalent si la fonction se justifie, mais ils veulent fournir une API JavaScript idiomatique. TensorFlow avec WebGL fonctionne également - à 50 - 60 % de la vitesse de l'API TensorFlow Python - si on l’utilise avec la bibliothèque AVX.
TensorFlow.js devrait bénéficier prochainement des autres améliorations suivantes :
- Ajout d’une bibliothèque de visualisation pour effectuer des visualisations rapides du modèle et des données.
- Amélioration des performances du navigateur.
- Optimisation WebGL.
- Une API de données spécifique au navigateur et Node.
- Intégration Cloud côté Node.js, y compris les points d'intégration de type sans serveur.
- Meilleur support asynchrone avec la bibliothèque I/O libuv asynchrone.