Dokumen ini menunjukkan cara menginstal dan menggunakan TensorFlow.js di lingkungan browser dan di Node.js.
Pengaturan peramban
Ada dua cara yang disarankan untuk menggunakan TensorFlow.js dalam proyek berbasis browser:
Jika Anda baru mengenal pengembangan web, atau belum pernah menggunakan alat pembuatan JavaScript, Anda mungkin ingin mencoba pendekatan tag skrip terlebih dahulu. Jika Anda biasanya menggabungkan atau memproses aset web, atau berencana membuat aplikasi yang lebih besar, Anda harus mempertimbangkan untuk menggunakan alat build.
Gunakan tag skrip
Untuk mendapatkan TensorFlow.js menggunakan tag skrip, tambahkan kode berikut ke file HTML utama Anda:
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>
Contoh berikut menunjukkan cara mendefinisikan dan melatih model di browser:
<!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>
Untuk menjalankan contoh, ikuti langkah-langkah berikut:
- Simpan contoh dokumen dalam file bernama
index.html
. Klik dua kali
index.html
untuk membukanya di browser default Anda.Alternatifnya, Anda dapat menyajikan
index.html
dengan menjalankannpx http-server
di direktori yang sama denganindex.html
. (Jika Anda diminta izin untuk menginstalhttp-server
, masukkany
.) Lalu bukahttp://localhost:8080
di browser Anda.Buka konsol browser untuk melihat keluaran skrip.
Segarkan halaman untuk melihat prediksi baru (dan kemungkinan besar berbeda).
Instal dari NPM
Untuk menginstal TensorFlow.js dari NPM, gunakan npm CLI atau benang .
NPM
npm install @tensorflow/tfjs
Benang
yarn add @tensorflow/tfjs
Contoh berikut menunjukkan cara mengimpor TensorFlow.js, menentukan model, dan melatih 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
});
Pengaturan Node.js
Untuk menggunakan TensorFlow.js di Node.js, gunakan npm CLI atau benang untuk menyelesaikan salah satu opsi instalasi di bawah.
Untuk mempelajari lebih lanjut cara menggunakan TensorFlow.js di Node.js, lihat panduan Node.js . Untuk informasi instalasi tambahan, lihat repositori TensorFlow.js untuk Node.js.
Opsi 1: Instal TensorFlow.js dengan binding C++ asli.
Modul tfjs-node
menyediakan eksekusi TensorFlow asli dalam aplikasi JavaScript pada runtime Node.js, yang dipercepat oleh biner TensorFlow C.
Instal tfjs-node
:
NPM
npm install @tensorflow/tfjs-node
Benang
yarn add @tensorflow/tfjs-node
Contoh berikut menunjukkan cara mengimpor tfjs-node
, menentukan model, dan melatih 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}`)
}
});
Opsi 2: Instal TensorFlow.js untuk GPU
(Khusus Linux) Jika sistem Anda memiliki GPU NVIDIA® dengan dukungan CUDA , Anda dapat menggunakan paket GPU untuk meningkatkan kinerja.
Instal tfjs-node-gpu
:
NPM
npm install @tensorflow/tfjs-node-gpu
Benang
yarn add @tensorflow/tfjs-node-gpu
Contoh berikut menunjukkan cara mengimpor tfjs-node-gpu
, menentukan model, dan melatih 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}`)
}
});
Opsi 3: Instal versi JavaScript murni
Modul tfjs
adalah paket yang sama yang Anda gunakan di browser. Ini adalah opsi Node.js yang paling lambat dalam hal kinerja.
Instal tfjs
:
NPM
npm install @tensorflow/tfjs
Benang
yarn add @tensorflow/tfjs
Contoh berikut menunjukkan cara mengimpor tfjs
, menentukan model, dan melatih 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}`)
}
});
skrip ketikan
Jika Anda menggunakan TensorFlow.js dalam proyek TypeScript, dan Anda mengaktifkan pemeriksaan null yang ketat, Anda mungkin perlu menyetel skipLibCheck: true
di tsconfig.json
untuk menghindari kesalahan selama kompilasi.