Este documento mostra como instalar e usar o TensorFlow.js em um ambiente de navegador e no Node.js.
Configuração do navegador
Existem 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 compilação como Parcel , webpack ou Rollup .
Se você é iniciante em desenvolvimento web ou nunca usou ferramentas de compilação JavaScript, talvez seja melhor experimentar primeiro com a tag `<script>`. Se você costuma agrupar ou processar seus arquivos web, ou se planeja escrever aplicações maiores, considere usar ferramentas de compilaçã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 estes passos:
- Salve o documento de exemplo em um arquivo chamado
index.html. Clique duas vezes em
index.htmlpara abri-lo no seu navegador padrão.Alternativamente, você pode servir
index.htmlexecutando o comandonpx http-serverno mesmo diretório doindex.html. (Se for solicitada permissão para instalarhttp-server, digitey.) Em seguida, acessehttp://localhost:8080no seu navegador.Abra o console do navegador para ver a saída do script.
Atualize a página para ver uma nova previsão (e muito provavelmente diferente).
Instale a partir do NPM.
Para instalar o TensorFlow.js a partir 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 treinar esse modelo.
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 o TensorFlow.js no Node.js, utilize a CLI do npm ou o yarn 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 sobre a instalação, consulte o repositório do TensorFlow.js para Node.js.
Opção 1: Instale o TensorFlow.js com as ligações nativas em C++.
O módulo tfjs-node fornece execução nativa do TensorFlow em aplicações JavaScript sob o ambiente de execução Node.js, acelerada pelo binário C do TensorFlow.
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 esse 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: Instale o TensorFlow.js para GPU
(Apenas para Linux) Se o seu sistema tiver uma GPU NVIDIA® com suporte a CUDA , você pode usar o pacote de GPU para obter melhor 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 o tfjs-node-gpu , definir um modelo e treiná-lo.
// 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 em JavaScript puro
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 esse 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}`)
}
});
TypeScript
Se você estiver usando o TensorFlow.js em um projeto TypeScript e tiver a verificação estrita de nulos ativada, talvez precise definir skipLibCheck: true no seu tsconfig.json para evitar erros durante a compilação.