Mô hình TensorFlow
TesorFlow.js
Thư viện JavaScript dành cho
Đào tạo và triển khai
Mô hình học máy
Trong trình duyệt
Mô hình dòng chảy
Mô hình và Lớp là các khối xây dựng quan trọng trong Machine Learning .
Đối với các tác vụ Machine Learning khác nhau, bạn phải kết hợp các loại Lớp khác nhau thành một Mô hình có thể được đào tạo bằng dữ liệu để dự đoán các giá trị trong tương lai.
TensorFlow.js đang hỗ trợ các loại Mô hình khác nhau và các loại Lớp khác nhau.
Mô hình TensorFlow là Mạng thần kinh có một hoặc nhiều Lớp .
Một dự án Tensorflow
Một dự án Tensorflow có quy trình làm việc điển hình sau:
- Thu thập dữ liệu
- Tạo mô hình
- Thêm lớp vào mô hình
- Biên dịch mô hình
- Đào tạo người mẫu
- Sử dụng mô hình
Ví dụ
Giả sử bạn biết một hàm xác định đường eo biển:
Y = 1,2X + 5
Sau đó, bạn có thể tính bất kỳ giá trị y nào bằng công thức JavaScript:
y = 1.2 * x + 5;
Để chứng minh Tensorflow.js, chúng ta có thể huấn luyện mô hình Tensorflow.js để dự đoán các giá trị Y dựa trên đầu vào X.
Mô hình TensorFlow không biết chức năng.
// Create Training Data
const xs = tf.tensor([0, 1, 2, 3, 4]);
const ys = xs.mul(1.2).add(5);
// Define a Linear Regression Model
const model = tf.sequential();
model.add(tf.layers.dense({units:1, inputShape:[1]}));
// Specify Loss and Optimizer
model.compile({loss:'meanSquaredError', optimizer:'sgd'});
// Train the Model
model.fit(xs, ys, {epochs:500}).then(() => {myFunction()});
// Use the Model
function myFunction() {
const xArr = [];
const yArr = [];
for (let x = 0; x <= 10; x++) {
xArr.push(x);
let result = model.predict(tf.tensor([Number(x)]));
result.data().then(y => {
yArr.push(Number(y));
if (x == 10) {plot(xArr, yArr)};
});
}
}
Ví dụ được giải thích dưới đây:
Thu thập dữ liệu
Tạo một tensor (xs) với 5 giá trị x:
const xs = tf.tensor([0, 1, 2, 3, 4]);
Tạo một tensor (ys) có 5 đáp án y đúng (nhân xs với 1,2 rồi cộng 5):
const ys = xs.mul(1.2).add(5);
Tạo mô hình
Tạo chế độ tuần tự:.
const model = tf.sequential();
Trong mô hình tuần tự, đầu ra của lớp này là đầu vào của lớp tiếp theo.
Thêm lớp
Thêm một lớp dày đặc vào mô hình.
Lớp chỉ có một đơn vị (tensor) và hình dạng là 1 (một chiều):
model.add(tf.layers.dense({units:1, inputShape:[1]}));
trong một lớp dày đặc, mọi nút được kết nối với mọi nút ở lớp trước.
Biên dịch mô hình
Biên dịch mô hình bằng cách sử dụng MeanSquaredError làm hàm mất mát và sgd (giảm độ dốc ngẫu nhiên) làm hàm tối ưu hóa:
model.compile({loss:'meanSquaredError', optimizer:'sgd'});
Trình tối ưu hóa dòng chảy
- Adadelta -Thực hiện thuật toán Adadelta.
- Adagrad - Thực hiện thuật toán Adagrad.
- Adam - Thực hiện thuật toán Adam.
- Adamax - Thực hiện thuật toán Adamax.
- Ftrl - Thực hiện thuật toán FTRL.
- Nadam - Thực hiện thuật toán NAdam.
- Trình tối ưu hóa - Lớp cơ sở cho trình tối ưu hóa Keras.
- RMSprop - Thực hiện thuật toán RMSprop.
- SGD - Trình tối ưu hóa độ dốc ngẫu nhiên.
Đào tạo người mẫu
Huấn luyện mô hình (sử dụng xs và ys) với 500 lần lặp lại (kỷ nguyên):
model.fit(xs, ys, {epochs:500}).then(() => {myFunction()});
Sử dụng mô hình
Sau khi huấn luyện mô hình, bạn có thể sử dụng mô hình cho nhiều mục đích khác nhau.
Ví dụ này dự đoán 10 giá trị y, cho trước 10 giá trị x và gọi một hàm để vẽ các dự đoán trong biểu đồ:
function myFunction() {
const xArr = [];
const yArr = [];
for (let x = 0; x <= 10; x++) {
let result = model.predict(tf.tensor([Number(x)]));
result.data().then(y => {
xArr.push(x);
yArr.push(Number(y));
if (x == 10) {display(xArr, yArr)};
});
}
}
Ví dụ này dự đoán 10 giá trị y, cho trước 10 giá trị x và gọi một hàm để hiển thị các giá trị:
function myFunction() {
const xArr = [];
const yArr = [];
for (let x = 0; x <= 10; x++) {
let result = model.predict(tf.tensor([Number(x)]));
result.data().then(y => {
xArr.push(x);
yArr.push(Number(y));
if (x == 10) {display(xArr, yArr)};
});
}
}