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:
Użyj znacznika skryptu .
Zainstaluj z NPM i użyj narzędzia do kompilacji, takiego jak Parcel , webpack lub Rollup .
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:
- Zapisz przykładowy dokument w pliku o nazwie
index.html
. Kliknij dwukrotnie
index.html
, aby otworzyć go w domyślnej przeglądarce.Alternatywnie możesz udostępnić
index.html
uruchamiającnpx http-server
w tym samym katalogu coindex.html
. (Jeśli zostaniesz poproszony o pozwolenie na instalacjęhttp-server
, wpiszy
). Następnie przejdź dohttp://localhost:8080
w swojej przeglądarce.Otwórz konsolę przeglądarki, aby zobaczyć wynik działania skryptu.
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.