Skonfiguruj projekt TensorFlow.js

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

Konfiguracja przeglądarki

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

Jeśli dopiero zaczynasz przygodę z tworzeniem stron internetowych lub nie korzystałeś wcześniej z narzędzi do kompilacji JavaScript, warto najpierw wypróbować podejście ze znacznikami skryptów. Jeśli zazwyczaj grupujesz lub przetwarzasz zasoby internetowe albo planujesz pisać większe aplikacje, warto rozważyć użycie narzędzi do kompilacji.

Użyj znacznika skryptu

Aby uzyskać TensorFlow.js za pomocą znacznika script, dodaj poniższy kod 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 trenować 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 obsługiwać index.html , uruchamiając npx http-server w tym samym katalogu co index.html . (Jeśli zostaniesz poproszony o zezwolenie na instalację http-server , wpisz y ). Następnie przejdź do http://localhost:8080 w przeglądarce.

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

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

Zainstaluj z NPM

Aby zainstalować TensorFlow.js z NPM, użyj npm CLI lub yarn .

NPM

npm install @tensorflow/tfjs

Przędza

yarn add @tensorflow/tfjs

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

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 wiersza poleceń npm lub yarn , aby wykonać jedną z poniższych opcji instalacji.

Aby dowiedzieć się więcej o korzystaniu z TensorFlow.js w Node.js, zapoznaj się z przewodnikiem Node.js. Dodatkowe informacje o instalacji znajdziesz w repozytorium TensorFlow.js dla Node.js.

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

Moduł tfjs-node zapewnia natywne wykonywanie funkcji TensorFlow w aplikacjach JavaScript w środowisku uruchomieniowym 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 go wytrenować.

// 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 ma 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 go wytrenować.

// 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 wersję z czystym JavaScriptem

Moduł tfjs to ten sam pakiet, którego używa się w przeglądarce. Jest to najwolniejsza opcja 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 go wytrenować.

// 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.