Ten dokument pokazuje, jak zainstalować i używać TensorFlow.js w środowisku przeglądarki oraz w Node.js.
Konfiguracja przeglądarki
Istnieją dwa zalecane sposoby używania TensorFlow.js w projekcie opartym na przeglądarce:
Użyj tagu script .
Zainstaluj z NPM i użyj narzędzia do budowania, takiego jak Parcel , webpack lub Rollup .
Jeśli jesteś nowicjuszem w tworzeniu stron internetowych lub nie korzystałeś wcześniej z narzędzi do budowania JavaScript, możesz najpierw wypróbować metodę tagów skryptów. Jeśli zazwyczaj łączysz lub przetwarzasz swoje zasoby internetowe albo planujesz pisać większe aplikacje, powinieneś rozważyć użycie narzędzi do kompilacji.
Użyj tagu skryptu
Aby uzyskać plik TensorFlow.js za pomocą 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 zostanie wyświetlony monit o pozwolenie na zainstalowaniehttp-server
, wpiszy
). Następnie przejdź dohttp://localhost:8080
w przeglądarce.Otwórz konsolę przeglądarki, aby zobaczyć dane wyjściowe skryptu.
Odśwież stronę, aby zobaczyć nową (i prawdopodobnie inną) prognozę.
Zainstaluj z NPM
Aby zainstalować TensorFlow.js z NPM, użyj interfejsu wiersza polecenia 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 wyszkolić 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 wiersza polecenia npm lub przędzy , aby wykonać jedną z poniższych opcji instalacji.
Aby dowiedzieć się więcej o używaniu TensorFlow.js w Node.js, zapoznaj się z przewodnikiem po Node.js . Dodatkowe informacje dotyczące instalacji można znaleźć w repozytorium TensorFlow.js for 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, akcelerowane 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 używasz 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 wyszkolić 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 tsconfig.json
, aby uniknąć błędów podczas kompilacji.