Configurer un projet TensorFlow.js

Ce document vous montre comment installer et utiliser TensorFlow.js dans un environnement de navigateur et dans Node.js.

Configuration du navigateur

Il existe deux méthodes recommandées pour utiliser TensorFlow.js dans un projet basé sur un navigateur :

Si vous débutez en développement web ou si vous n'avez jamais utilisé d'outils de compilation JavaScript, il est conseillé de commencer par la méthode des balises `<script>`. En revanche, si vous avez l'habitude de regrouper ou de traiter vos ressources web, ou si vous prévoyez de développer des applications plus importantes, l'utilisation d'outils de compilation sera recommandée.

Utilisez une balise script

Pour intégrer TensorFlow.js à l'aide d'une balise script, ajoutez le code suivant à votre fichier HTML principal :

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>

L'exemple suivant montre comment définir et entraîner un modèle dans le navigateur :

<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8" />
    <title>TensorFlow.js browser example</title>

    <!-- Load TensorFlow.js from a script tag -->
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>
  </head>
  <body>
    <h1>TensorFlow.js example</h1>
    <h2>Open the console to see the results.</h2>
    <script>
    // Define a model for linear regression. The script tag makes `tf` available
    // as a global variable.
    const model = tf.sequential();
    model.add(tf.layers.dense({units: 1, inputShape: [1]}));

    model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});

    // Generate some synthetic data for training.
    const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
    const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);

    // Train the model using the data.
    model.fit(xs, ys, {epochs: 10}).then(() => {
      // Use the model to do inference on a data point the model hasn't seen before:
      model.predict(tf.tensor2d([5], [1, 1])).print();
      // Open the browser devtools to see the output
    });
    </script>
  </body>
</html>

Pour exécuter l'exemple, suivez ces étapes :

  1. Enregistrez le document d'exemple dans un fichier appelé index.html .
  2. Double-cliquez sur index.html pour l'ouvrir dans votre navigateur par défaut.

    Vous pouvez également servir index.html en exécutant la commande npx http-server dans le même répertoire que index.html . (Si l'on vous demande l'autorisation d'installer http-server , répondez y .) Ensuite, accédez à http://localhost:8080 dans votre navigateur.

  3. Ouvrez la console du navigateur pour voir le résultat du script.

  4. Actualisez la page pour voir une nouvelle prédiction (et très probablement différente).

Installer depuis NPM

Pour installer TensorFlow.js depuis NPM, utilisez soit l' interface de ligne de commande npm , soit yarn .

NPM

npm install @tensorflow/tfjs

Fil

yarn add @tensorflow/tfjs

L'exemple suivant montre comment importer TensorFlow.js, définir un modèle et entraîner ce modèle.

import * as tf from '@tensorflow/tfjs';

// Define a model for linear regression.
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));

model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});

// Generate some synthetic data for training.
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);

// Train the model using the data.
model.fit(xs, ys, {epochs: 10}).then(() => {
  // Use the model to do inference on a data point the model hasn't seen before:
  model.predict(tf.tensor2d([5], [1, 1])).print();
  // Open the browser devtools to see the output
});

Configuration de Node.js

Pour utiliser TensorFlow.js dans Node.js, utilisez soit l' interface de ligne de commande npm , soit yarn pour effectuer l'une des installations proposées ci-dessous.

Pour en savoir plus sur l'utilisation de TensorFlow.js avec Node.js, consultez le guide Node.js. Pour plus d'informations sur l'installation, consultez le dépôt TensorFlow.js pour Node.js.

Option 1 : Installer TensorFlow.js avec des liaisons C++ natives.

Le module tfjs-node permet l'exécution native de TensorFlow dans les applications JavaScript sous l'environnement d'exécution Node.js, accélérée par le binaire C de TensorFlow.

Installer tfjs-node :

NPM

npm install @tensorflow/tfjs-node

Fil

yarn add @tensorflow/tfjs-node

L'exemple suivant montre comment importer tfjs-node , définir un modèle et entraîner ce modèle.

// Use `tfjs-node`. Note that `tfjs` is imported indirectly by `tfjs-node`.
const tf = require('@tensorflow/tfjs-node');

// Define a simple model.
const model = tf.sequential();
model.add(tf.layers.dense({units: 100, activation: 'relu', inputShape: [10]}));
model.add(tf.layers.dense({units: 1, activation: 'linear'}));
model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});

const xs = tf.randomNormal([100, 10]);
const ys = tf.randomNormal([100, 1]);

// Train the model.
model.fit(xs, ys, {
  epochs: 100,
  callbacks: {
    onEpochEnd: (epoch, log) => console.log(`Epoch ${epoch}: loss = ${log.loss}`)
  }
});

Option 2 : Installer TensorFlow.js pour GPU

(Linux uniquement) Si votre système possède un GPU NVIDIA® avec prise en charge CUDA , vous pouvez utiliser le package GPU pour des performances améliorées.

Installer tfjs-node-gpu :

NPM

npm install @tensorflow/tfjs-node-gpu

Fil

yarn add @tensorflow/tfjs-node-gpu

L'exemple suivant montre comment importer tfjs-node-gpu , définir un modèle et entraîner ce modèle.

// Use `tfjs-node-gpu`. Note that `tfjs` is imported indirectly by `tfjs-node-gpu`.
const tf = require('@tensorflow/tfjs-node-gpu');

// Define a simple model.
const model = tf.sequential();
model.add(tf.layers.dense({units: 100, activation: 'relu', inputShape: [10]}));
model.add(tf.layers.dense({units: 1, activation: 'linear'}));
model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});

const xs = tf.randomNormal([100, 10]);
const ys = tf.randomNormal([100, 1]);

// Train the model.
model.fit(xs, ys, {
  epochs: 100,
  callbacks: {
    onEpochEnd: (epoch, log) => console.log(`Epoch ${epoch}: loss = ${log.loss}`)
  }
});

Option 3 : Installer la version JavaScript pure

Le module tfjs est identique à celui utilisé dans le navigateur. C'est l'option Node.js la plus lente en termes de performances.

Installer tfjs :

NPM

npm install @tensorflow/tfjs

Fil

yarn add @tensorflow/tfjs

L'exemple suivant montre comment importer tfjs , définir un modèle et entraîner ce modèle.

// Use `tfjs`.
const tf = require('@tensorflow/tfjs');

// Define a simple model.
const model = tf.sequential();
model.add(tf.layers.dense({units: 100, activation: 'relu', inputShape: [10]}));
model.add(tf.layers.dense({units: 1, activation: 'linear'}));
model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});

const xs = tf.randomNormal([100, 10]);
const ys = tf.randomNormal([100, 1]);

// Train the model.
model.fit(xs, ys, {
  epochs: 100,
  callbacks: {
    onEpochEnd: (epoch, log) => console.log(`Epoch ${epoch}: loss = ${log.loss}`)
  }
});

Manuscrit

Si vous utilisez TensorFlow.js dans un projet TypeScript et que la vérification stricte des valeurs nulles est activée, vous devrez peut-être définir skipLibCheck: true dans votre tsconfig.json pour éviter les erreurs lors de la compilation.