Configurar un proyecto TensorFlow.js

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

Configuración del navegador

Hay dos formas recomendadas de utilizar TensorFlow.js en un proyecto basado en navegador:

Si es nuevo en el desarrollo web o no ha utilizado herramientas de compilación de JavaScript antes, es posible que desee probar primero el método de etiqueta de secuencia de comandos. Si normalmente agrupa o procesa sus activos web, o planea escribir aplicaciones más grandes, debería considerar el uso de herramientas de compilación.

Utilice una etiqueta de secuencia de comandos

Para obtener TensorFlow.js usando una etiqueta de secuencia de comandos, 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. Guarde el documento de ejemplo en un archivo llamado index.html .
  2. Haga doble clic index.html para abrirlo en su navegador predeterminado.

    Alternativamente, puede servir index.html ejecutando npx http-server en el mismo directorio que index.html . (Si se le solicita permiso para instalar http-server , ingrese y ). Luego vaya a http://localhost:8080 en su navegador.

  3. Abra la consola del navegador para ver el resultado 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, use la CLI de npm o hilo .

MNP

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, use la CLI de npm o hilo para completar una de las opciones de instalación siguientes.

Para obtener más información sobre el uso de 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 tiempo de ejecución de Node.js, acelerada por el binario TensorFlow C.

Instalar tfjs-node :

MNP

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 Linux) Si su sistema tiene una GPU NVIDIA® con soporte CUDA , puede usar el paquete GPU para mejorar el rendimiento.

Instalar tfjs-node-gpu :

MNP

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 de JavaScript puro

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 :

MNP

npm install @tensorflow/tfjs

Hilo

yarn add @tensorflow/tfjs

El siguiente ejemplo muestra cómo importar tfjs , definir un modelo y entrenar el 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}`)
  }
});

Mecanografiado

Si está utilizando TensorFlow.js en un proyecto de TypeScript y tiene habilitada la verificación estricta de nulos, es posible que deba configurar skipLibCheck: true en su tsconfig.json para evitar errores durante la compilación.