Este documento mostra como instalar e usar o TensorFlow.js em um ambiente de navegador e no 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 compilação como Parcel , webpack ou Rollup .
Se você é novo no desenvolvimento da Web ou nunca usou ferramentas de construção JavaScript antes, talvez queira tentar a abordagem de tag de script primeiro. Se você costuma agrupar ou processar seus recursos da Web ou planeja escrever aplicativos maiores, considere o uso de 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
index.html
para abri-lo em seu navegador padrão.Como alternativa, 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 nova (e muito provavelmente diferente) previsão.
Instalar a partir do NPM
Para instalar o TensorFlow.js do NPM, use a CLI npm ou yarn .
NPM
npm install @tensorflow/tfjs
Fio
yarn add @tensorflow/tfjs
O exemplo a seguir mostra como importar TensorFlow.js, definir um modelo e treinar o 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, use a CLI npm ou 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 de instalação adicionais, consulte o repositório TensorFlow.js para Node.js .
Opção 1: instale o TensorFlow.js com vinculações nativas do C++.
O módulo tfjs-node
fornece execução nativa do TensorFlow em aplicativos JavaScript no tempo de execução 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 o 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}`)
}
});
TypeScript
Se você estiver usando TensorFlow.js em um projeto TypeScript e tiver a verificação nula estrita habilitada, talvez seja necessário definir skipLibCheck: true
em seu tsconfig.json
para evitar erros durante a compilação.