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:
Utilice una etiqueta de secuencia de comandos .
Instale desde NPM y use una herramienta de compilación como Parcel , webpack o Rollup .
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:
- Guarde el documento de ejemplo en un archivo llamado
index.html
. Haga doble clic
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.
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.