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:
Użyj znacznika script .
Zainstaluj z NPM i użyj narzędzia do kompilacji, takiego jak Parcel , webpack lub Rollup .
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:
- 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 obsługiwać
index.html, uruchamiającnpx http-serverw tym samym katalogu coindex.html. (Jeśli zostaniesz poproszony o zezwolenie na instalacjęhttp-server, wpiszy). Następnie przejdź dohttp://localhost:8080w przeglądarce.Otwórz konsolę przeglądarki, aby zobaczyć wynik skryptu.
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.