Imposta un progetto TensorFlow.js

Questo documento mostra come installare e utilizzare TensorFlow.js in un ambiente browser e in Node.js.

Configurazione del browser

Esistono due modi consigliati per utilizzare TensorFlow.js in un progetto basato su browser:

Se sei nuovo nello sviluppo web o non hai mai utilizzato gli strumenti di creazione JavaScript in precedenza, potresti provare prima l'approccio tag script. Se di solito raggruppi o elabori le tue risorse web o prevedi di scrivere applicazioni più grandi, dovresti prendere in considerazione l'utilizzo di strumenti di creazione.

Utilizza un tag script

Per ottenere TensorFlow.js utilizzando un tag script, aggiungi quanto segue al tuo file HTML principale:

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

L'esempio seguente mostra come definire e addestrare un modello nel browser:

<!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>

Per eseguire l'esempio, attenersi alla seguente procedura:

  1. Salva il documento di esempio in un file chiamato index.html .
  2. Fai doppio clic index.html per aprirlo nel browser predefinito.

    In alternativa, puoi servire index.html eseguendo npx http-server nella stessa directory di index.html . (Se ti viene richiesta l'autorizzazione per installare http-server , inserisci y .) Quindi vai a http://localhost:8080 nel tuo browser.

  3. Apri la console del browser per vedere l'output dello script.

  4. Aggiorna la pagina per vedere una nuova (e molto probabilmente diversa) previsione.

Installa da NPM

Per installare TensorFlow.js da NPM, utilizzare la CLI npm o Yarn .

NPM

npm install @tensorflow/tfjs

Filato

yarn add @tensorflow/tfjs

L'esempio seguente mostra come importare TensorFlow.js, definire un modello e addestrare il modello.

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
});

Configurazione di Node.js

Per utilizzare TensorFlow.js in Node.js, utilizza la CLI npm o Yarn per completare una delle opzioni di installazione riportate di seguito.

Per ulteriori informazioni sull'utilizzo di TensorFlow.js in Node.js, consulta la guida di Node.js. Per ulteriori informazioni sull'installazione, consulta il repository TensorFlow.js per Node.js.

Opzione 1: installa TensorFlow.js con collegamenti C++ nativi.

Il modulo tfjs-node fornisce l'esecuzione nativa di TensorFlow nelle applicazioni JavaScript nel runtime Node.js, accelerata dal binario TensorFlow C.

Installa tfjs-node :

NPM

npm install @tensorflow/tfjs-node

Filato

yarn add @tensorflow/tfjs-node

L'esempio seguente mostra come importare tfjs-node , definire un modello e addestrare il modello.

// 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}`)
  }
});

Opzione 2: installa TensorFlow.js per GPU

(Solo Linux) Se il tuo sistema dispone di una GPU NVIDIA® con supporto CUDA , puoi utilizzare il pacchetto GPU per migliorare le prestazioni.

Installa tfjs-node-gpu :

NPM

npm install @tensorflow/tfjs-node-gpu

Filato

yarn add @tensorflow/tfjs-node-gpu

L'esempio seguente mostra come importare tfjs-node-gpu , definire un modello e addestrare il modello.

// 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}`)
  }
});

Opzione 3: installa la versione JavaScript pura

Il modulo tfjs è lo stesso pacchetto che utilizzeresti nel browser. È la più lenta delle opzioni Node.js in termini di prestazioni.

Installa tfjs :

NPM

npm install @tensorflow/tfjs

Filato

yarn add @tensorflow/tfjs

L'esempio seguente mostra come importare tfjs , definire un modello e addestrare il modello.

// 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}`)
  }
});

Dattiloscritto

Se utilizzi TensorFlow.js in un progetto TypeScript e hai abilitato il controllo null rigoroso, potrebbe essere necessario impostare skipLibCheck: true nel tuo tsconfig.json per evitare errori durante la compilazione.