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

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.