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

Existem duas maneiras recomendadas de usar o TensorFlow.js em um projeto baseado em navegador:

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:

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

    Alternativamente, você pode servir index.html executando o comando npx http-server no mesmo diretório do index.html . (Se for solicitada permissão para instalar http-server , digite y .) Em seguida, acesse http://localhost:8080 no seu navegador.

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

  4. 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.