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 manières recommandées d'utiliser TensorFlow.js dans un projet basé sur un navigateur :

Si vous débutez dans le développement Web ou si vous n'avez jamais utilisé d'outils de création JavaScript auparavant, vous souhaiterez peut-être d'abord essayer l'approche des balises de script. Si vous regroupez ou traitez habituellement vos ressources Web, ou si vous envisagez d'écrire des applications plus volumineuses, vous devriez envisager d'utiliser des outils de création.

Utiliser une balise de script

Pour obtenir TensorFlow.js à l'aide d'une balise de script, ajoutez ce qui suit à 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, procédez comme suit :

  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.

    Alternativement, vous pouvez servir index.html en exécutant npx http-server dans le même répertoire que index.html . (Si vous êtes invité à donner l'autorisation d'installer http-server , saisissez y .) Accédez ensuite à http://localhost:8080 dans votre navigateur.

  3. Ouvrez la console du navigateur pour voir la sortie du script.

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

Installer à partir de NPM

Pour installer TensorFlow.js à partir de NPM, utilisez la CLI npm ou Yarn .

MNP

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 le 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 la CLI npm ou le fil pour compléter l'une des options d'installation ci-dessous.

Pour en savoir plus sur l'utilisation de TensorFlow.js dans Node.js, consultez le guide Node.js . Pour plus d'informations sur l'installation, consultez le référentiel TensorFlow.js pour Node.js .

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

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

Installez tfjs-node :

MNP

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 le 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 dispose d'un GPU NVIDIA® avec prise en charge CUDA , vous pouvez utiliser le package GPU pour améliorer les performances.

Installez tfjs-node-gpu :

MNP

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 le 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 le même package que vous utiliseriez dans le navigateur. C'est l'option la plus lente de Node.js en termes de performances.

Installez tfjs :

MNP

npm install @tensorflow/tfjs

Fil

yarn add @tensorflow/tfjs

L'exemple suivant montre comment importer tfjs , définir un modèle et entraîner le 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.