Configurar un proyecto TensorFlow.js

Este documento muestra cómo instalar y usar TensorFlow.js en un entorno de navegador y en Node.js.

Configuración del navegador

Existen dos formas recomendadas de usar TensorFlow.js en un proyecto basado en navegador:

Si eres nuevo en el desarrollo web o no has usado herramientas de compilación de JavaScript, quizás quieras probar primero con etiquetas de script. Si sueles empaquetar o procesar tus recursos web, o si planeas desarrollar aplicaciones más grandes, deberías considerar usar herramientas de compilación.

Utilice una etiqueta de script

Para obtener TensorFlow.js usando una etiqueta de script, agregue lo siguiente a su archivo HTML principal:

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>

El siguiente ejemplo muestra cómo definir y entrenar un modelo en el 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 ejecutar el ejemplo, siga estos pasos:

  1. Guarda el documento de ejemplo en un archivo llamado index.html .
  2. Haz doble clic en index.html para abrirlo en tu navegador predeterminado.

    Como alternativa, puedes servir index.html ejecutando npx http-server en el mismo directorio que index.html . (Si se te pide permiso para instalar http-server , escribe " y "). Luego, ve a http://localhost:8080 en tu navegador.

  3. Abre la consola del navegador para ver la salida del script.

  4. Actualiza la página para ver una predicción nueva (y muy probablemente diferente).

Instalar desde NPM

Para instalar TensorFlow.js desde NPM, utilice la interfaz de línea de comandos de npm o yarn .

NPM

npm install @tensorflow/tfjs

Hilo

yarn add @tensorflow/tfjs

El siguiente ejemplo muestra cómo importar TensorFlow.js, definir un modelo y entrenarlo.

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
});

Configuración de Node.js

Para usar TensorFlow.js en Node.js, utilice la interfaz de línea de comandos de npm o yarn para completar una de las opciones de instalación que se indican a continuación.

Para obtener más información sobre cómo usar TensorFlow.js en Node.js, consulte la guía de Node.js. Para obtener información adicional sobre la instalación, consulte el repositorio de TensorFlow.js para Node.js.

Opción 1: Instalar TensorFlow.js con enlaces nativos de C++.

El módulo tfjs-node proporciona ejecución nativa de TensorFlow en aplicaciones JavaScript bajo el entorno de ejecución Node.js, acelerada por el binario C de TensorFlow.

Instalar tfjs-node :

NPM

npm install @tensorflow/tfjs-node

Hilo

yarn add @tensorflow/tfjs-node

El siguiente ejemplo muestra cómo importar tfjs-node , definir un modelo y entrenarlo.

// 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}`)
  }
});

Opción 2: Instalar TensorFlow.js para GPU

(Solo para Linux) Si su sistema tiene una GPU NVIDIA® con soporte para CUDA , puede usar el paquete de GPU para mejorar el rendimiento.

Instalar tfjs-node-gpu :

NPM

npm install @tensorflow/tfjs-node-gpu

Hilo

yarn add @tensorflow/tfjs-node-gpu

El siguiente ejemplo muestra cómo importar tfjs-node-gpu , definir un modelo y entrenarlo.

// 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}`)
  }
});

Opción 3: Instalar la versión puramente JavaScript

El módulo tfjs es el mismo paquete que usarías en el navegador. Es la opción más lenta de Node.js en términos de rendimiento.

Instalar tfjs :

NPM

npm install @tensorflow/tfjs

Hilo

yarn add @tensorflow/tfjs

El siguiente ejemplo muestra cómo importar tfjs , definir un modelo y entrenarlo.

// 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}`)
  }
});

Mecanografiado

Si utilizas TensorFlow.js en un proyecto de TypeScript y tienes habilitada la comprobación estricta de valores nulos, es posible que debas establecer skipLibCheck: true en tu tsconfig.json para evitar errores durante la compilación.