Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

TensorFlow.js im Knoten

TensorFlow-CPU

Das TensorFlow-CPU-Paket kann wie folgt importiert werden:

 import * as tf from '@tensorflow/tfjs-node'
 

Beim Importieren von TensorFlow.js aus diesem Paket wird das Modul, das Sie erhalten, durch die TensorFlow C-Binärdatei beschleunigt und auf der CPU ausgeführt. TensorFlow auf der CPU verwendet Hardwarebeschleunigung, um die Berechnung der linearen Algebra unter der Haube zu beschleunigen.

Dieses Paket funktioniert auf Linux-, Windows- und Mac-Plattformen, auf denen TensorFlow unterstützt wird.

TensorFlow GPU

Das TensorFlow-GPU-Paket kann wie folgt importiert werden:

 import * as tf from '@tensorflow/tfjs-node-gpu'
 

Wie das CPU-Paket wird das Modul, das Sie erhalten, durch die TensorFlow C-Binärdatei beschleunigt, es werden jedoch Tensoroperationen auf der GPU mit CUDA und somit nur unter Linux ausgeführt. Diese Bindung kann mindestens eine Größenordnung schneller sein als die anderen Bindungsoptionen.

Vanille-CPU

Die Version von TensorFlow.js, die mit Vanilla-CPU-Operationen ausgeführt wird, kann wie folgt importiert werden:

 import * as tf from '@tensorflow/tfjs'
 

Dieses Paket entspricht dem Paket, das Sie im Browser verwenden würden. In diesem Paket werden die Vorgänge in Vanille-JavaScript auf der CPU ausgeführt. Dieses Paket ist viel kleiner als die anderen, da es die TensorFlow-Binärdatei nicht benötigt, jedoch viel langsamer ist.

Da dieses Paket nicht auf TensorFlow basiert, kann es auf mehr Geräten verwendet werden, die Node.js unterstützen als nur Linux, Windows und Mac.

Produktionsüberlegungen

Die Node.js-Bindungen bieten ein Backend für TensorFlow.js, das Operationen synchron implementiert. Das heißt, wenn Sie eine Operation aufrufen, z. B. tf.matMul(a, b) , wird der Hauptthread blockiert, bis die Operation abgeschlossen ist.

Aus diesem Grund eignen sich die Bindungen derzeit gut für Skripte und Offline-Aufgaben. Wenn Sie die Node.js-Bindungen in einer Produktionsanwendung wie einem Webserver verwenden möchten, sollten Sie eine Jobwarteschlange oder Arbeitsthreads einrichten, damit Ihr TensorFlow.js-Code den Hauptthread nicht blockiert.

APIs

Sobald Sie das Paket in einer der oben genannten Optionen als tf importiert haben, werden alle normalen TensorFlow.js-Symbole auf dem importierten Modul angezeigt.

tf.browser

Im normalen TensorFlow.js-Paket können die Symbole im Namespace tf.browser.* In Node.js nicht verwendet werden, da sie tf.browser.* APIs verwenden.

Derzeit sind dies:

  • tf.browser.fromPixels
  • tf.browser.toPixels

tf.node

Die beiden Node.js-Pakete bieten auch den Namespace tf.node , der tf.node APIs enthält.

TensorBoard ist ein bemerkenswertes Beispiel für Node.js-spezifische APIs.

Ein Beispiel für den Export von Zusammenfassungen nach TensorBoard in Node.js:

 const model = tf.sequential();
model.add(tf.layers.dense({ units: 1, inputShape: [200] }));
model.compile({
  loss: 'meanSquaredError',
  optimizer: 'sgd',
  metrics: ['MAE']
});


// Generate some random fake data for demo purpose.
const xs = tf.randomUniform([10000, 200]);
const ys = tf.randomUniform([10000, 1]);
const valXs = tf.randomUniform([1000, 200]);
const valYs = tf.randomUniform([1000, 1]);


// Start model training process.
async function train() {
  await model.fit(xs, ys, {
    epochs: 100,
    validationData: [valXs, valYs],
    // Add the tensorBoard callback here.
    callbacks: tf.node.tensorBoard('/tmp/fit_logs_1')
  });
}
train();