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:
Utilice una etiqueta de script .
Instálalo desde NPM y utiliza una herramienta de compilación como Parcel , webpack o Rollup .
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:
- Guarda el documento de ejemplo en un archivo llamado
index.html. Haz doble clic en
index.htmlpara abrirlo en tu navegador predeterminado.Como alternativa, puedes servir
index.htmlejecutandonpx http-serveren el mismo directorio queindex.html. (Si se te pide permiso para instalarhttp-server, escribe "y"). Luego, ve ahttp://localhost:8080en tu navegador.Abre la consola del navegador para ver la salida del script.
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.