Tài liệu này hướng dẫn bạn cách cài đặt và sử dụng TensorFlow.js trong môi trường trình duyệt và trong Node.js.
Thiết lập trình duyệt
Có hai cách được đề xuất để sử dụng TensorFlow.js trong dự án dựa trên trình duyệt:
Sử dụng thẻ script .
Cài đặt từ NPM và sử dụng công cụ xây dựng như Parcel , webpack hoặc Rollup .
Nếu bạn là người mới phát triển web hoặc chưa từng sử dụng các công cụ xây dựng JavaScript trước đây, trước tiên bạn có thể muốn thử phương pháp tiếp cận thẻ tập lệnh. Nếu bạn thường đóng gói hoặc xử lý nội dung web của mình hoặc dự định viết các ứng dụng lớn hơn, bạn nên cân nhắc sử dụng các công cụ xây dựng.
Sử dụng thẻ script
Để tải TensorFlow.js bằng thẻ script, hãy thêm phần sau vào tệp HTML chính của bạn:
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>
Ví dụ sau đây cho thấy cách xác định và huấn luyện một mô hình trong trình duyệt:
<!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>
Để chạy ví dụ, hãy làm theo các bước sau:
- Lưu tài liệu mẫu vào một tệp có tên là
index.html
. Bấm đúp vào
index.html
để mở nó trong trình duyệt mặc định của bạn.Ngoài ra, bạn có thể phân phát
index.html
bằng cách chạynpx http-server
trong cùng thư mục vớiindex.html
. (Nếu bạn được nhắc cấp phép cài đặthttp-server
, hãy nhậpy
.) Sau đó truy cậphttp://localhost:8080
trong trình duyệt của bạn.Mở bảng điều khiển trình duyệt để xem đầu ra của tập lệnh.
Làm mới trang để xem dự đoán mới (và rất có thể khác).
Cài đặt từ NPM
Để cài đặt TensorFlow.js từ NPM, hãy sử dụng npm CLI hoặc sợi .
NPM
npm install @tensorflow/tfjs
Sợi
yarn add @tensorflow/tfjs
Ví dụ sau đây cho thấy cách nhập TensorFlow.js, xác định mô hình và huấn luyện mô hình.
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
});
Thiết lập Node.js
Để sử dụng TensorFlow.js trong Node.js, hãy sử dụng npm CLI hoặc sợi để hoàn thành một trong các tùy chọn cài đặt bên dưới.
Để tìm hiểu thêm về cách sử dụng TensorFlow.js trong Node.js, hãy xem hướng dẫn Node.js. Để biết thêm thông tin cài đặt, hãy xem kho lưu trữ TensorFlow.js dành cho Node.js.
Tùy chọn 1: Cài đặt TensorFlow.js với các liên kết C++ gốc.
Mô tfjs-node
cung cấp khả năng thực thi TensorFlow nguyên gốc trong các ứng dụng JavaScript trong thời gian chạy Node.js, được tăng tốc bởi tệp nhị phân TensorFlow C.
Cài đặt tfjs-node
:
NPM
npm install @tensorflow/tfjs-node
Sợi
yarn add @tensorflow/tfjs-node
Ví dụ sau đây cho thấy cách nhập tfjs-node
, xác định mô hình và huấn luyện mô hình.
// 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}`)
}
});
Tùy chọn 2: Cài đặt TensorFlow.js cho GPU
(Chỉ dành cho Linux) Nếu hệ thống của bạn có GPU NVIDIA® có hỗ trợ CUDA , bạn có thể sử dụng gói GPU để cải thiện hiệu suất.
Cài đặt tfjs-node-gpu
:
NPM
npm install @tensorflow/tfjs-node-gpu
Sợi
yarn add @tensorflow/tfjs-node-gpu
Ví dụ sau đây cho thấy cách nhập tfjs-node-gpu
, xác định mô hình và huấn luyện mô hình.
// 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}`)
}
});
Tùy chọn 3: Cài đặt phiên bản JavaScript thuần
Mô-đun tfjs
giống với gói bạn sử dụng trong trình duyệt. Đây là tùy chọn chậm nhất trong số các tùy chọn Node.js xét về hiệu suất.
Cài đặt tfjs
:
NPM
npm install @tensorflow/tfjs
Sợi
yarn add @tensorflow/tfjs
Ví dụ sau đây cho thấy cách nhập tfjs
, xác định mô hình và huấn luyện mô hình.
// 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}`)
}
});
Bản đánh máy
Nếu bạn đang sử dụng TensorFlow.js trong dự án TypeScript và đã bật tính năng kiểm tra null nghiêm ngặt, bạn có thể cần đặt skipLibCheck: true
trong tsconfig.json
để tránh lỗi trong quá trình biên dịch.