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:
Utilice una etiqueta de secuencia de comandos .
Instale desde NPM y utilice una herramienta de compilación como Parcel , webpack o Rollup .
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:
- Guarde el documento de ejemplo en un archivo llamado
index.html
. Haga doble clic en
index.html
para abrirlo en su navegador predeterminado.Alternativamente, puede servir
index.html
ejecutandonpx http-server
en el mismo directorio queindex.html
. (Si se le solicita permiso para instalarhttp-server
, ingresey
). Luego vaya ahttp://localhost:8080
en su navegador.Abra la consola del navegador para ver el resultado 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, 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 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 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.