Intelligence artificielle : Faire du Deep Learning en Javascript avec TensorFlow.js

Intelligence artificielle : Faire du Deep Learning en Javascript avec TensorFlow.js
Actu IA
TF_JS_lockup_400

En août 2017, nous vous présentions TensorFire, une librairie javascript permettant de faire du Deep Learning directement depuis votre navigateur internet. L’autre librairie permettant de le faire, Deeplearn.js a évolué et devient le socle de TensorFlow.js, la suite de Deep Learning javascript la plus avancée à l’heure actuelle. Le portage est pour le moment incomplet mais permet d’utiliser les fonctionnalités principales de TensorFlow.

TensorFlow.js permet donc d’entraîner et déployer des modèles de Machine Learning en les intégrant au sein d’une page web. La librairie exploite les optimisations WebGL afin de proposer d’excellentes performances.

La librairie permet d’utiliser des modèles TensorFlow via une procédure d’importation (en revanche il est impossible d’exporter les modèles TensorFlow.js pour le moment). Comme vous pouvez le voir dans l’exemple ci-dessous, l’implémentation est on ne peut plus simple, et les développeurs habitués à TensorFlow ne devraient pas être déstabilisés.

<!-- Chargement de TensorFlow.js -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.9.0"> </script>

<script>
// Définition du modèle pour réaliser une régression logistique
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
// Préparation du modèle pour l'entrainement.
// On définit la méthode utilisée pour le calcul du coût et l'optimisation
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});

// Création des entrées et sorties d'un jeu d'entrainement.
// entrées
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
// sorties
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);

// Entrainement du modèle
model.fit(xs, ys).then(() => {
// Lorsque le modèle est entraîné, nous pouvons effectuer une prédiction
// celle-ci s'affichera dans la console développeur du navigateur
model.predict(tf.tensor2d([5], [1, 1])).print(); });
</script>

Cette librairie ouvre la porte à de nombreuses possibilités, puisqu’elle peut par exemple exploiter la webcam du navigateur. Et surtout, en mettant le Deep Learning à la portée des développeurs Javascript, il y a de fortes chances pour qu’elle contribue à une accélération de la diffusion du Deep Learning. En revanche, elle ne risque pour le moment pas de faire de l’ombre à la version Python de TensorFlow, qui permet d’entraîner les modèles 10 à 15 fois plus rapidement.

ll s’agit donc d’une excellente initiative qui s’inscrit comme une démocratisation du Deep Learning. Le seul bémol que nous pouvons y voir est que le développement de ce type de librairies Javascript risque à terme de faciliter le “vol” de temps de calcul des visiteurs de sites web.

Pour plus d’informations et des démos prêtes à l’emploi, rendez-vous sur js.tensorflow.org.