Este documento mostra como instalar e usar o TensorFlow.js em um ambiente de navegador e em Node.js.
Configuração do navegador
Há duas maneiras recomendadas de usar o TensorFlow.js em um projeto baseado em navegador:
Use uma tag de script .
Instale a partir do NPM e use uma ferramenta de construção como Parcel , webpack ou Rollup .
Se você é novo no desenvolvimento web ou nunca usou ferramentas de construção JavaScript antes, você pode tentar primeiro a abordagem de tag de script. Se você costuma agrupar ou processar seus ativos da web ou planeja escrever aplicativos maiores, considere usar ferramentas de construção.
Use uma tag de script
Para obter o TensorFlow.js usando uma tag de script, adicione o seguinte ao seu arquivo HTML principal:
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>
O exemplo a seguir mostra como definir e treinar um modelo no navegador:
<!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>
Para executar o exemplo, siga estas etapas:
- Salve o documento de exemplo em um arquivo chamado
index.html
. Clique duas vezes em
index.html
para abri-lo em seu navegador padrão.Alternativamente, você pode servir
index.html
executandonpx http-server
no mesmo diretório queindex.html
. (Se for solicitada permissão para instalarhttp-server
, digitey
.) Em seguida, vá parahttp://localhost:8080
em seu navegador.Abra o console do navegador para ver a saída do script.
Atualize a página para ver uma previsão nova (e muito provavelmente diferente).
Instalar a partir do NPM
Para instalar o TensorFlow.js do NPM, use a CLI do npm ou o yarn .
NPM
npm install @tensorflow/tfjs
Fio
yarn add @tensorflow/tfjs
O exemplo a seguir mostra como importar o TensorFlow.js, definir um modelo e treiná-lo.
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
});
Configuração do Node.js.
Para usar TensorFlow.js em Node.js, use a CLI npm ou o fio para concluir uma das opções de instalação abaixo.
Para saber mais sobre como usar o TensorFlow.js no Node.js, consulte o guia do Node.js. Para obter informações adicionais de instalação, consulte o repositório TensorFlow.js para Node.js.
Opção 1: instale o TensorFlow.js com vinculações C++ nativas.
O módulo tfjs-node
fornece execução nativa do TensorFlow em aplicativos JavaScript no tempo de execução do Node.js, acelerado pelo binário TensorFlow C.
Instale tfjs-node
:
NPM
npm install @tensorflow/tfjs-node
Fio
yarn add @tensorflow/tfjs-node
O exemplo a seguir mostra como importar tfjs-node
, definir um modelo e treinar o modelo.
// 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}`)
}
});
Opção 2: instalar TensorFlow.js para GPU
(Somente Linux) Se o seu sistema tiver uma GPU NVIDIA® com suporte CUDA , você poderá usar o pacote GPU para melhorar o desempenho.
Instale tfjs-node-gpu
:
NPM
npm install @tensorflow/tfjs-node-gpu
Fio
yarn add @tensorflow/tfjs-node-gpu
O exemplo a seguir mostra como importar tfjs-node-gpu
, definir um modelo e treinar o modelo.
// 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}`)
}
});
Opção 3: instale a versão JavaScript pura
O módulo tfjs
é o mesmo pacote que você usaria no navegador. É a opção mais lenta do Node.js em termos de desempenho.
Instale tfjs
:
NPM
npm install @tensorflow/tfjs
Fio
yarn add @tensorflow/tfjs
O exemplo a seguir mostra como importar tfjs
, definir um modelo e treinar o modelo.
// 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}`)
}
});
Texto datilografado
Se você estiver usando TensorFlow.js em um projeto TypeScript e tiver a verificação estrita de nulos habilitada, talvez seja necessário definir skipLibCheck: true
em seu tsconfig.json
para evitar erros durante a compilação.