Configurar um projeto TensorFlow.js

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:

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:

  1. Salve o documento de exemplo em um arquivo chamado index.html .
  2. Clique duas vezes index.html para abri-lo em seu navegador padrão.

    Como alternativa, você pode servir index.html executando npx http-server no mesmo diretório que index.html . (Se for solicitada permissão para instalar http-server , digite y .) Em seguida, vá para http://localhost:8080 em seu navegador.

  3. Abra o console do navegador para ver a saída do script.

  4. 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 Fio
npm install @tensorflow/tfjs
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 Fio
npm install @tensorflow/tfjs-node
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 Fio
npm install @tensorflow/tfjs-node-gpu
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 Fio
npm install @tensorflow/tfjs
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.