Skonfiguruj projekt TensorFlow.js

W tym dokumencie pokazano, jak zainstalować i używać TensorFlow.js w środowisku przeglądarki oraz w Node.js.

Konfiguracja przeglądarki

Istnieją dwa zalecane sposoby wykorzystania TensorFlow.js w projekcie opartym na przeglądarce:

Jeśli dopiero zaczynasz tworzyć strony internetowe lub nie korzystałeś wcześniej z narzędzi do tworzenia JavaScript, możesz najpierw wypróbować metodę tagów skryptowych. Jeśli zwykle łączysz lub przetwarzasz zasoby sieciowe lub planujesz pisać większe aplikacje, powinieneś rozważyć użycie narzędzi do kompilacji.

Użyj znacznika skryptu

Aby uzyskać TensorFlow.js przy użyciu tagu skryptu, dodaj następujące elementy do głównego pliku HTML:

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>

Poniższy przykład pokazuje, jak zdefiniować i wytrenować model w przeglądarce:

<!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>

Aby uruchomić przykład, wykonaj następujące kroki:

  1. Zapisz przykładowy dokument w pliku o nazwie index.html .
  2. Kliknij dwukrotnie index.html , aby otworzyć go w domyślnej przeglądarce.

    Alternatywnie możesz udostępnić index.html uruchamiając npx http-server w tym samym katalogu co index.html . (Jeśli zostaniesz poproszony o pozwolenie na instalację http-server , wpisz y ). Następnie przejdź do http://localhost:8080 w swojej przeglądarce.

  3. Otwórz konsolę przeglądarki, aby zobaczyć wynik działania skryptu.

  4. Odśwież stronę, aby zobaczyć nową (i najprawdopodobniej inną) prognozę.

Zainstaluj z NPM

Aby zainstalować TensorFlow.js z NPM, użyj interfejsu CLI npm lub przędzy .

NPM

npm install @tensorflow/tfjs

Przędza

yarn add @tensorflow/tfjs

Poniższy przykład pokazuje, jak zaimportować TensorFlow.js, zdefiniować model i wytrenować model.

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
});

Konfiguracja Node.js

Aby użyć TensorFlow.js w Node.js, użyj interfejsu CLI npm lub przędzy , aby wykonać jedną z poniższych opcji instalacji.

Aby dowiedzieć się więcej na temat używania TensorFlow.js w Node.js, zapoznaj się z przewodnikiem Node.js. Aby uzyskać dodatkowe informacje dotyczące instalacji, zobacz repozytorium TensorFlow.js dla Node.js.

Opcja 1: Zainstaluj TensorFlow.js z natywnymi powiązaniami C++.

Moduł tfjs-node zapewnia natywne wykonywanie TensorFlow w aplikacjach JavaScript w środowisku wykonawczym Node.js, przyspieszane przez plik binarny TensorFlow C.

Zainstaluj tfjs-node :

NPM

npm install @tensorflow/tfjs-node

Przędza

yarn add @tensorflow/tfjs-node

Poniższy przykład pokazuje, jak zaimportować tfjs-node , zdefiniować model i wytrenować model.

// 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}`)
  }
});

Opcja 2: Zainstaluj TensorFlow.js dla GPU

(Tylko Linux) Jeśli Twój system jest wyposażony w procesor graficzny NVIDIA® z obsługą CUDA , możesz użyć pakietu GPU w celu zwiększenia wydajności.

Zainstaluj tfjs-node-gpu :

NPM

npm install @tensorflow/tfjs-node-gpu

Przędza

yarn add @tensorflow/tfjs-node-gpu

Poniższy przykład pokazuje, jak zaimportować tfjs-node-gpu , zdefiniować model i wytrenować model.

// 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}`)
  }
});

Opcja 3: Zainstaluj czystą wersję JavaScript

Moduł tfjs to ten sam pakiet, którego można używać w przeglądarce. Jest to najwolniejsza z opcji Node.js pod względem wydajności.

Zainstaluj tfjs :

NPM

npm install @tensorflow/tfjs

Przędza

yarn add @tensorflow/tfjs

Poniższy przykład pokazuje, jak zaimportować tfjs , zdefiniować model i wytrenować model.

// 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}`)
  }
});

Maszynopis

Jeśli używasz TensorFlow.js w projekcie TypeScript i masz włączone ścisłe sprawdzanie wartości null, może być konieczne ustawienie skipLibCheck: true w pliku tsconfig.json , aby uniknąć błędów podczas kompilacji.