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:
Utilizza un tag script .
Installa da NPM e utilizza uno strumento di creazione come Parcel , webpack o Rollup .
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:
- Salva il documento di esempio in un file chiamato
index.html
. Fai doppio clic su
index.html
per aprirlo nel browser predefinito.In alternativa, puoi servire
index.html
eseguendonpx http-server
nella stessa directory diindex.html
. (Se ti viene richiesta l'autorizzazione per installarehttp-server
, inserisciy
.) Quindi vai ahttp://localhost:8080
nel tuo browser.Apri la console del browser per vedere l'output dello script.
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.