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 usar TensorFlow.js en un proyecto basado en navegador:

Si es nuevo en el desarrollo web o no ha usado herramientas de compilación de JavaScript antes, es posible que desee probar primero el enfoque de etiqueta de secuencia de comandos. Si suele agrupar o procesar sus activos web, o planea escribir aplicaciones más grandes, debería considerar el uso de herramientas de compilación.

Usar 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. Actualice 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 yarn .

MNP

npm install @tensorflow/tfjs

Hilo

yarn add @tensorflow/tfjs

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

Configuración de Node.js

Para usar TensorFlow.js en Node.js, use la CLI de npm o yarn para completar una de las opciones de instalación a continuación.

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 de JavaScript bajo el tiempo de ejecución de Node.js, acelerado 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 entrenar el 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}`)
  }
});

Opción 2: instalar TensorFlow.js para GPU

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

Instale 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 entrenar el 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}`)
  }
});

Opción 3: instalar la versión de JavaScript puro

El módulo tfjs es el mismo paquete que usaría en el navegador. Es la más lenta de las opciones 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 usa TensorFlow.js en un proyecto TypeScript y tiene habilitada la verificación estricta de valores nulos, es posible que deba configurar skipLibCheck: true en su tsconfig.json para evitar errores durante la compilación.