1. Giới thiệu
Vậy là bạn đã tạo một mô hình học máy tuỳ chỉnh bằng TensorFlow.js, nhưng giờ đây, bạn cần lưu trữ mô hình đó ở đâu đó để sử dụng trên một trang web mà bạn chọn. Có nhiều cách để thực hiện việc này, nhưng hôm nay chúng ta sẽ xem cách dễ dàng sử dụng Firebase Hosting. Dịch vụ này cũng có thể mang lại cho bạn một số lợi ích khác như tạo phiên bản, phân phát mô hình qua kết nối bảo mật và nhiều lợi ích khác.
Sản phẩm bạn sẽ tạo ra
Trong lớp học lập trình này, bạn sẽ tạo một hệ thống toàn diện có khả năng lưu trữ và chạy mô hình TensorFlow.js tuỳ chỉnh đã lưu cùng với các thành phần liên quan như HTML, CSS và JavaScript. Chúng ta sẽ tạo một mô hình nhẹ rất đơn giản có thể dự đoán giá trị đầu ra dạng số dựa trên một số giá trị đầu vào (ví dụ: giá của một ngôi nhà dựa trên diện tích vuông của ngôi nhà đó) và lưu trữ mô hình đó thông qua Firebase Hosting để có thể sử dụng mô hình đó trên quy mô lớn.
Kiến thức bạn sẽ học được
- Cách lưu mô hình TensorFlow.js tuỳ chỉnh ở định dạng phù hợp
- Cách thiết lập tài khoản Firebase để lưu trữ
- Cách triển khai tài sản trên Lưu trữ Firebase
- Cách triển khai các phiên bản mới của mô hình.
Xin lưu ý: Trọng tâm của lớp học lập trình này là cách lấy một mô hình được huấn luyện tuỳ chỉnh và lưu trữ mô hình đó để triển khai, thay vì một khoá học về cách tạo cấu trúc mô hình hoàn hảo. Vì vậy, chúng ta sẽ nhanh chóng tạo mô hình học máy bằng một ví dụ nhỏ. Các nguyên tắc sẽ giống nhau bất kể bạn tự tạo mô hình nào.
Chia sẻ nội dung bạn tạo với chúng tôi
Nếu bạn đã tạo ra một sản phẩm thú vị bằng cách sử dụng ngăn xếp này, hãy cho chúng tôi biết! Chúng tôi rất mong được xem những tác phẩm sáng tạo của bạn.
Hãy gắn thẻ chúng tôi trên mạng xã hội bằng hashtag #MadeWithTFJS để có cơ hội giới thiệu dự án của bạn trên blog TensorFlow hoặc thậm chí là các sự kiện trong tương lai như Show & Tell.
2. Lưu trữ Firebase là gì?
Lưu trữ Firebase cung cấp dịch vụ lưu trữ cấp độ sản xuất nhanh chóng và an toàn cho ứng dụng web, nội dung tĩnh / động và dịch vụ vi mô
Chỉ với một lệnh, bạn có thể nhanh chóng triển khai ứng dụng web và phân phát nội dung đến một CDN (mạng phân phối nội dung) toàn cầu để đảm bảo nội dung của bạn có sẵn với độ trễ thấp ở hầu hết mọi nơi. Bạn cũng có thể ghép nối Firebase Hosting với Cloud Functions hoặc Cloud Run của Firebase để tạo và lưu trữ các dịch vụ vi mô, nhưng điều này nằm ngoài phạm vi của lớp học lập trình này.
Các tính năng chính của dịch vụ Lưu trữ Firebase
- Phân phát nội dung qua kết nối an toàn – web hiện đại là an toàn. Thường thì để truy cập vào cảm biến ở phía máy khách, trang web phải được phân phối qua một ngữ cảnh bảo mật. Tính năng SSL không cần cấu hình được tích hợp vào tính năng Lưu trữ Firebase, nhờ đó, nội dung luôn được phân phối một cách an toàn cho tất cả các tệp được lưu trữ.
- Lưu trữ nội dung tĩnh và động cùng với các dịch vụ vi mô có hỗ trợ xác thực để chỉ những người dùng đã đăng nhập mới có thể tải / xem các tệp đó nếu muốn.
- Phân phối nội dung nhanh chóng – Mỗi tệp mà bạn tải lên sẽ được lưu vào bộ nhớ đệm trên ổ SSD tại các điểm cuối CDN trên khắp thế giới. Bất kể người dùng ở đâu, nội dung đều được phân phối nhanh chóng.
- Triển khai phiên bản mới bằng một lệnh – Bằng cách sử dụng giao diện dòng lệnh Firebase, bạn có thể khởi động và chạy ứng dụng của mình chỉ trong vài giây.
- Quay lại bằng một lần nhấp – Việc triển khai nhanh là rất tốt, nhưng có thể huỷ bỏ lỗi thì còn tốt hơn nữa. Firebase Hosting cung cấp tính năng quản lý phiên bản và bản phát hành đầy đủ với tính năng khôi phục chỉ bằng một lần nhấp.
Cho dù bạn đang triển khai một trang đích ứng dụng đơn giản hay một Ứng dụng web tiến bộ (PWA) phức tạp, dịch vụ Lưu trữ đều cung cấp cho bạn cơ sở hạ tầng, tính năng và công cụ phù hợp để triển khai và quản lý trang web cũng như ứng dụng.
Theo mặc định, mọi dự án Firebase đều có miền con miễn phí trên miền web.app và firebaseapp.com. Hai trang web này phân phát cùng một nội dung và cấu hình đã triển khai. Bạn cũng có thể kết nối tên miền của riêng mình với một trang web do Firebase lưu trữ nếu muốn.
Các bước triển khai
- Thiết lập dự án
- Cài đặt và định cấu hình giao diện dòng lệnh Firebase
- Triển khai trang web
- Liên kết đến ứng dụng web Firebase để giám sát hiệu suất (không bắt buộc)
Nhưng trước khi có thể làm bất kỳ việc gì trong số này, chúng ta cần có một mô hình học máy và ứng dụng web để triển khai. Vậy hãy cùng tạo một ứng dụng!
3. Mô hình Học máy đơn giản để dự đoán giá nhà
Để thực hiện bài tập này, chúng ta sẽ tạo một Mô hình học máy rất đơn giản để dự đoán các giá trị số. Chúng ta sẽ thử sử dụng công nghệ học máy để dự đoán giá trị của một ngôi nhà hư cấu dựa trên kích thước tính bằng feet vuông (chỉ nhằm mục đích minh hoạ). Trên thực tế, đối với bản minh hoạ này, chúng ta chỉ cần nhân diện tích nhà ở theo feet vuông với 1000 để có được giá trị dự đoán cho dữ liệu huấn luyện, nhưng công nghệ học máy sẽ cần tự học điều này.
Trong thực tế, bạn sẽ chọn sử dụng dữ liệu thực tế có thể có mối quan hệ phức tạp hơn (ví dụ: đối với những ngôi nhà nhỏ hơn, kích thước chỉ bằng 500 lần để ước tính giá trị bằng đô la, nhưng sau một ngưỡng nhất định, kích thước này sẽ dần trở thành 1000 lần, v.v.) và bạn có thể cần một mô hình nâng cao hơn để tìm hiểu cách tốt nhất để dự đoán các giá trị đó.
Mô hình mà chúng ta sẽ tạo hôm nay (biến hồi quy tuyến tính) có thể được dùng để dự đoán nhiều thứ khác nếu có đủ dữ liệu thực tế và dễ dàng bắt đầu với trường hợp sử dụng giả định ở trên. Tuy nhiên, trọng tâm của chúng ta hôm nay là tìm hiểu cách lưu và triển khai mô hình so với thiết kế và tối ưu hoá mô hình cho một trường hợp sử dụng nhất định. Hãy cùng bắt đầu nhé!
Dữ liệu huấn luyện và kiểm thử
Tất cả mô hình học máy đều bắt đầu bằng việc thu thập một số dữ liệu huấn luyện mẫu mà chúng ta có thể sử dụng để dạy mô hình có thể dự đoán các giá trị trong tương lai. Thông thường, bạn có thể lấy dữ liệu như vậy từ cơ sở dữ liệu, thư mục tệp, CSV hoặc nhiều nguồn khác, nhưng ở đây, chúng ta sẽ trực tiếp mã hoá cứng 20 ví dụ dưới dạng một mảng trong JavaScript như minh hoạ bên dưới. Bạn nên sao chép mã này trong một môi trường mà bạn cảm thấy thoải mái khi lập trình, chẳng hạn như Glitch.com hoặc trình soạn thảo văn bản cục bộ của riêng bạn nếu bạn có thể chạy máy chủ trên máy chủ cục bộ.
model.js
// House square footage.
const data = [800, 850, 900, 950, 980, 1000, 1050, 1075, 1100, 1150, 1200, 1250, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000];
// Estimated dollar cost of house for each piece of data above (1000x square footage).
const answers = [800000, 850000, 900000, 950000, 980000, 1000000, 1050000, 1075000, 1100000, 1150000, 1200000, 1250000 , 1300000, 1400000, 1500000, 1600000, 1700000, 1800000, 1900000, 2000000];
// Testing data separate from training data.
const dataTest = [886, 1225, 500];
const answersTest = [886000, 1225000, 500000];
Như bạn có thể thấy, đối với mỗi phần dữ liệu, chúng ta có một giá trị câu trả lời tương ứng, đó là giá trị mà chúng ta sẽ cố gắng dự đoán trong tương lai (bạn có thể tưởng tượng đây là các giá trị x và y trên một biểu đồ 2D đơn giản).
Vì vậy, đối với giá trị 800,chúng ta muốn tạo ra một câu trả lời ước tính đầu ra là 800.000 đô la. Đối với giá trị 900,chúng ta sẽ xuất ra 900.000 đô la, v.v. Về cơ bản, số này được nhân với 1000. Tuy nhiên, mô hình học máy không biết về mối quan hệ đơn giản này của 1000 * N và phải tự học mối quan hệ này từ các ví dụ mà chúng tôi cung cấp.
Lưu ý rằng chúng ta cũng có một số dữ liệu kiểm thử hoàn toàn tách biệt với dữ liệu huấn luyện. Điều này cho phép chúng tôi đánh giá mô hình đã huấn luyện để xem mô hình đó hoạt động hiệu quả như thế nào trên dữ liệu chưa từng thấy trước đây.
Chúng ta sẽ tải tập lệnh này cùng với thư viện TensorFlow.js bằng html sau:
train.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Training Model</title>
<meta charset="utf-8">
</head>
<body>
<!-- Import TensorFlow.js library -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js" type="text/javascript"></script>
<!-- Import our JS code to train the model -->
<script src="/model.js" defer></script>
</body>
</html>
Huấn luyện mô hình
Tiếp theo, chúng ta sẽ huấn luyện mô hình bằng cách thêm mã bên dưới vào mã JS hiện có ở cuối tệp.
Chúng tôi đã thêm các nhận xét cho những ai tò mò, nhưng như đã đề cập, lớp học lập trình này chủ yếu là về việc lấy một mô hình đã lưu và lưu trữ mô hình đó. Có các lớp học lập trình khác được liên kết ở cuối nếu bạn muốn tìm hiểu thêm về cách tạo mô hình. Hiện tại, bạn có thể sao chép và dán mã vào dự án của mình.
model.js
// Create Tensor representations of our vanilla JS arrays above
// so can be used to train our model.
const trainTensors = {
data: tf.tensor2d(data, [data.length, 1]),
answer: tf.tensor2d(answers, [answers.length, 1])
};
const testTensors = {
data: tf.tensor2d(dataTest, [dataTest.length, 1]),
answer: tf.tensor2d(answersTest, [answersTest.length, 1])
};
// Now actually create and define model architecture.
const model = tf.sequential();
// We will use one dense layer with 1 neuron and an input of
// a single value.
model.add(tf.layers.dense({inputShape: [1], units: 1}));
// Choose a learning rate that is suitable for the data we are using.
const LEARNING_RATE = 0.0001;
train();
async function train() {
// Compile the model with the defined learning rate and specify
// our loss function to use.
model.compile({
optimizer: tf.train.sgd(LEARNING_RATE),
loss: 'meanAbsoluteError'
});
// Finally do the training itself over 500 iterations of the data.
// As we have so little training data we use batch size of 1.
// We also set for the data to be shuffled each time we try
// and learn from it.
let results = await model.fit(trainTensors.data, trainTensors.answer, {epochs: 500, batchSize: 1, shuffle: true});
// Once trained we can evaluate the model.
evaluate();
}
async function evaluate(stuff) {
// Predict answer for a single piece of data.
model.predict(tf.tensor2d([[768]])).print();
}
Bằng cách sử dụng mã ở trên, chúng ta đã có thể huấn luyện một mô hình có khả năng dự đoán giá trị đầu ra dựa trên giá trị đầu vào. Khi chạy mã ở trên,tôi nhận được kết quả dự đoán là 768.073 cho giá trị đầu vào 768. Kết quả này được in vào bảng điều khiển dành cho nhà phát triển của trình duyệt (nhấn F12 để mở bảng điều khiển nếu bạn chưa mở). Đây là giá ước tính khá chính xác cho một căn nhà, vì chúng tôi đã đưa ra các ví dụ cao hơn 1000 lần so với giá đầu vào. Lưu ý: Giá trị được dự đoán của bạn có thể khác một chút và đó là điều bình thường.
Nếu hài lòng với hiệu suất này, tất cả những gì chúng ta cần làm bây giờ là lưu mô hình này vào ổ đĩa để có thể tải mô hình đó lên Firebase Hosting!
Lưu mô hình
Việc thêm mã bên dưới vào cuối hàm đánh giá (sau model.predict) ở trên cho phép chúng ta xuất mô hình thu được sau khi huấn luyện xong ngay từ trình duyệt web và lưu vào ổ đĩa để sau này có thể lưu trữ ở đâu đó và sử dụng mô hình đó mà không cần huấn luyện lại mỗi khi tải trang.
model.js
await model.save('downloads://my-model');
Nếu bạn truy cập vào train.html và chạy trang này, trang sẽ huấn luyện mô hình (có thể mất vài giây) rồi nhắc bạn tải mô hình đã huấn luyện xuống sau khi hoàn tất.
4. Thiết lập Firebase
Đăng nhập vào Firebase và tạo dự án
Nếu bạn mới sử dụng Firebase, bạn có thể dễ dàng đăng ký bằng Tài khoản Google của mình. Bạn chỉ cần truy cập vào https://firebase.google.com/ rồi đăng nhập bằng Tài khoản Google thông thường mà bạn muốn sử dụng. Sau khi bạn được chuyển hướng đến trang chủ, hãy nhấp vào "chuyển đến bảng điều khiển" ở trên cùng bên phải trang:
Sau khi được chuyển hướng đến bảng điều khiển, bạn sẽ thấy một trang đích như sau:
Bạn chỉ cần nhấp vào Thêm dự án như minh hoạ để tạo một dự án Firebase mới, đặt tên riêng cho dự án, chấp nhận các điều khoản rồi nhấp vào tiếp tục.
Tiếp theo, bạn sẽ được hỏi xem có muốn thêm số liệu phân tích vào dự án của mình hay không. Nếu bạn muốn có quyền truy cập vào những số liệu phân tích đó, hãy bật tuỳ chọn này rồi nhấp vào tiếp tục như sau:
Nếu mọi thứ diễn ra suôn sẻ, bạn sẽ thấy trang dự án đã sẵn sàng như sau:
Thật tuyệt vời! Chúng ta có một dự án. Nhấp vào tiếp tục để chuyển đến bảng điều khiển của dự án mới tạo. Hãy giữ trang này mở để sử dụng sau, nhưng hiện tại chúng ta phải cài đặt một số công cụ.
Cài đặt và kết nối CLI
Firebase có sẵn dưới dạng gói NPM của Node mà bạn có thể cài đặt và sử dụng thông qua giao diện dòng lệnh (CLI). Điều này giúp bạn dễ dàng triển khai các tệp và thư mục cục bộ của mình lên Firebase Hosting. Trong hướng dẫn hôm nay, chúng ta sẽ sử dụng môi trường Linux. Tuy nhiên, nếu dùng Windows hoặc Mac, bạn có thể làm theo hướng dẫn tại đây để thiết lập công cụ dòng lệnh trên thiết bị của mình.
Tuy nhiên, trên Linux, trước tiên, chúng ta sẽ cài đặt NPM và Node.js nếu chưa cài đặt (làm theo hướng dẫn này nếu sử dụng các môi trường khác) bằng cách sử dụng 3 lệnh sau trong cửa sổ dòng lệnh:
Cổng dòng lệnh:
sudo apt update
Cổng dòng lệnh:
sudo apt install nodejs
Cổng dòng lệnh:
sudo apt install npm
Giờ đây, khi đã cài đặt Node.js và NPM, bạn chỉ cần chạy lệnh sau trong cửa sổ dòng lệnh để cài đặt các công cụ dòng lệnh Firebase:
Cổng dòng lệnh:
sudo npm install -g firebase-tools
Tuyệt vời! Bây giờ, chúng ta đã sẵn sàng kết nối dự án Firebase với hệ thống để có thể đẩy tệp vào dự án đó và làm nhiều việc khác.
Đăng nhập vào Firebase
Đăng nhập vào Firebase bằng Tài khoản Google của bạn bằng cách chạy lệnh sau:
Cổng dòng lệnh:
firebase login
Bạn sẽ được yêu cầu cấp quyền truy cập vào Tài khoản Google Firebase của mình như sau:
Cho phép việc này và cuối cùng, bạn sẽ thấy các công cụ dòng lệnh được kết nối thành công với tài khoản firebase:
Đóng cửa sổ và quay lại dòng lệnh mà bạn đã nhập trước đó. Dòng lệnh này hiện đã sẵn sàng chấp nhận các lệnh mới như minh hoạ (chúng tôi đã ẩn mọi thông tin riêng tư trong ảnh chụp màn hình):
Xin chúc mừng! Bây giờ, chúng ta đã sẵn sàng đẩy các tệp vào dự án đã tạo từ máy cục bộ.
Khởi chạy dự án để triển khai trên Firebase Hosting
Để kết nối thư mục cục bộ với dự án Firebase, hãy chạy lệnh sau từ thư mục gốc của thư mục dự án cục bộ (thư mục mà bạn muốn dùng để tải tệp lên khi triển khai).
Cổng dòng lệnh:
firebase init
Sau khi thực thi lệnh này, bạn chỉ cần làm theo hướng dẫn trong dòng lệnh để hoàn tất quá trình thiết lập như minh hoạ bên dưới:
Tại đây, chúng ta chỉ cần chọn Hosting (Lưu trữ) bằng cách sử dụng mũi tên xuống trên bàn phím, sau đó nhấn phím cách để chọn, rồi nhấn enter để xác nhận.
Bây giờ, chúng ta có thể chọn dự án hiện có mà chúng ta đã tạo trước đó để sử dụng:
Nhấn phím enter trên mục "sử dụng dự án hiện có" rồi chọn dự án đó bằng phím mũi tên xuống như minh hoạ bên dưới:
Cuối cùng, hãy nhấn enter để sử dụng, sau đó chấp nhận các giá trị mặc định trên màn hình cuối cùng bật lên và chọn "Không" để định cấu hình dưới dạng ứng dụng một trang:
Điều này sẽ cho phép bạn lưu trữ nhiều trang html nếu bạn chọn làm như vậy.
Bây giờ, quá trình khởi chạy đã hoàn tất, bạn sẽ thấy tệp firebase.json và thư mục "public" (công khai) đã được tạo trong thư mục mà chúng ta đã thực thi các lệnh ở trên.
Bây giờ, tất cả những gì chúng ta cần làm là di chuyển các tệp mà chúng ta muốn triển khai vào thư mục công khai mà chúng ta đã tạo và có thể triển khai! Hãy thực hiện ngay.
5. Tạo trang web TensorFlow.js
Đang tải mô hình bạn đã lưu
Trước tiên, hãy đảm bảo rằng chúng ta sao chép mô hình Học máy đã lưu trước đó trong lớp học lập trình vào thư mục công khai mà chúng ta vừa tạo bằng Firebase. Bạn chỉ cần kéo và thả các tệp đã lưu vào thư mục này như sau:
Bạn cũng sẽ thấy Firebase đã tạo các tệp index.html và 404.html cho chúng ta. Hãy tiếp tục chỉnh sửa index.html bằng trình soạn thảo văn bản mà bạn yêu thích trên máy để chúng ta có thể thêm mã tuỳ chỉnh của riêng mình như sau:
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello World - TensorFlow.js</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Import the webpage's stylesheet -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>TensorFlow.js Hello World</h1>
<p>Check the console (Press F12) to see predictions!</p>
<!-- Import TensorFlow.js library -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js" type="text/javascript"></script>
<!-- Import the page's JavaScript to do some stuff -->
<script src="script.js" defer></script>
</body>
</html>
Trong mã mới cho index.html ở trên, chúng ta chỉ định một trang kiểu để có thể thêm kiểu vào trang sau này nếu muốn, cũng như script.js để lưu trữ mã cần viết để sử dụng mô hình đã lưu của TensorFlow.js.
Hãy tiếp tục tạo các tệp đó và điền vào các tệp đó như sau để các tệp đó thực hiện một số việc hữu ích:
style.css
/** Leave blank for now **/
script.js
// Load our saved model from current directory (which will be
// hosted via Firebase Hosting)
async function predict() {
// Relative URL provided for my-model.json.
const model = await tf.loadLayersModel('my-model.json');
// Once model is loaded, let's try using it to make a prediction!
// Print to developer console for now.
model.predict(tf.tensor2d([[1337]])).print();
}
predict();
Nếu làm theo các bước một cách chính xác, bạn sẽ thấy các tệp đã chỉnh sửa sau đây trong thư mục công khai mà chúng ta đã tạo:
Giờ đây, tất cả những gì chúng ta cần làm là triển khai các tệp để kiểm tra xem nó có hoạt động hay không!
6. Triển khai mô hình và trang web
Phát hành
Quay lại cửa sổ dòng lệnh mà bạn đã mở trong thư mục dự án firebase trên máy cục bộ (đây là thư mục chứa thư mục "public" (công khai) ở trên cùng với các tệp khởi chạy firebase).
Bạn chỉ cần nhập nội dung sau để triển khai các tệp thư mục công khai:
Cổng dòng lệnh:
firebase deploy
Hãy đợi lệnh dòng lệnh hoàn tất và bạn sẽ có một bản phát hành hoàn chỉnh cùng với URL mà bạn có thể sử dụng để phát hành:
Trong ví dụ trên, bạn có thể thấy URL cuối cùng để xem quá trình triển khai của chúng tôi là:
https://tensorflow-js-demo.web.app (nhưng URL của bạn sẽ là tên của dự án bạn đã tạo).
Mở URL này trong trình duyệt web để kiểm tra xem URL có hoạt động hay không. Nếu thành công, URL sẽ in nội dung tương tự như sau vào bảng điều khiển dành cho nhà phát triển của trang bạn mở (nhấn phím F12 để mở bảng điều khiển dành cho nhà phát triển).
Như bạn có thể thấy, trang tải trên miền đã triển khai và chúng ta có thể thấy chính xác dự đoán của mô hình cho 1337 feet vuông, tương đương với 1.336.999,25 đô la. Đây thực sự là một con số ước tính rất chính xác vì chúng tôi dự kiến giá trị này sẽ gấp 1.000 lần so với feet vuông. Tất nhiên, chúng ta có thể đưa ra nhiều dự đoán như mong muốn nếu tạo một giao diện người dùng đẹp mắt để gọi mô hình. Tất cả đều chạy hoàn toàn trong JavaScript, đảm bảo các truy vấn của bạn được riêng tư và an toàn.
Giờ đây, khi mô hình của bạn đã được triển khai và lưu trữ, bạn có thể chia sẻ trang web với bất kỳ ai trên thế giới và họ sẽ có thể sử dụng ứng dụng của bạn trên máy của họ. Rõ ràng là bạn có thể muốn thêm một giao diện người dùng tốt hơn và làm cho giao diện đó trông thật bắt mắt, nhưng điều đó nằm ngoài phạm vi của hướng dẫn này. Bạn có thể lưu trữ nhiều ứng dụng web như thế này, được hỗ trợ bởi công nghệ học máy, chỉ cần một lần nhấp mà không cần cài đặt. Bạn nên cân nhắc những trường hợp khác có thể hưởng lợi từ mô hình học máy trong trình duyệt.
Theo dõi mức sử dụng
Ngoài mọi số liệu phân tích của Google mà bạn có thể thêm vào mã trang web, Firebase cũng cung cấp số liệu thống kê về phiên bản và mức sử dụng thông qua bảng điều khiển cho dự án của bạn. Sau khi triển khai, bạn sẽ thấy nội dung như sau. Bạn có thể kiểm tra nội dung này theo định kỳ nếu cần:
Như bạn có thể thấy, theo mặc định, ở cấp miễn phí, bạn sẽ có 10 GB băng thông mỗi tháng cho các tệp được lưu trữ. Nếu trang web của bạn phổ biến hơn, bạn có thể cần thêm một tài khoản thanh toán để sử dụng nhiều hơn trong một tháng nhất định. Bạn có thể xem các gói FireBase cho các dự án lớn hơn tại đây. Tuy nhiên, hầu hết người dùng thông thường cho các nguyên mẫu có thể sẽ không vượt quá cấp miễn phí nếu mô hình của bạn nhỏ và mức sử dụng thấp. Vì vậy, đây là một cách tuyệt vời để kiểm thử và kiểm tra xem mô hình đó có đáp ứng nhu cầu của bạn hay không trước khi bạn cam kết sử dụng một gói có tính phí khi phát triển doanh nghiệp hoặc ý tưởng của mình.
7. Xin chúc mừng
Chúc mừng! Bạn đã thực hiện những bước đầu tiên trong việc sử dụng TensorFlow.js với Firebase để xây dựng và triển khai một mô hình học máy tuỳ chỉnh để có thể chia sẻ với mọi người. Hãy tưởng tượng tất cả những việc khác mà bạn có thể làm bằng cách sử dụng phương pháp mạnh mẽ và có thể mở rộng này. Phương pháp này đã sẵn sàng cho các trường hợp sử dụng chính thức nếu bạn muốn, vì Firebase tự động mở rộng theo nhu cầu. Vì vậy, cho dù 10 hay 10.000 người dùng muốn sử dụng phương pháp này, thì phương pháp này vẫn sẽ hoạt động.
Nếu bạn thay đổi bất kỳ tệp nào, bạn chỉ cần triển khai lại ứng dụng bằng cách sử dụng tính năng triển khai firebase như trước và nhớ xoá bộ nhớ đệm của trình duyệt để đảm bảo bạn nhận được phiên bản mới của các tệp khi tải trang vào lần tiếp theo. Nếu đã mở công cụ cho nhà phát triển, bạn có thể buộc thực hiện việc này trong thẻ mạng trong khi kiểm thử để dễ dàng hơn bằng cách chọn hộp đánh dấu "tắt bộ nhớ đệm" ở gần đầu thẻ này:
Tóm tắt
Trong lớp học lập trình này, chúng ta:
- Xác định và huấn luyện một mô hình TensorFlow.js tuỳ chỉnh hoàn toàn từ đầu để dự đoán giá nhà.
- Đã đăng ký, định cấu hình và cài đặt Firebase + công cụ Firebase CLI trên máy phát triển.
- Triển khai và ra mắt một trang web đang hoạt động, tải mô hình đã huấn luyện của chúng ta từ bước 1 và sử dụng mô hình đó trong một ứng dụng web thực tế mà mọi người có thể truy cập ở quy mô lớn, ở bất kỳ đâu trên thế giới.
Tiếp theo là gì?
Giờ đây, khi đã có một cơ sở hoạt động để bắt đầu, bạn có thể nghĩ ra những ý tưởng sáng tạo nào để mở rộng mẫu triển khai mô hình học máy này?
Chúng tôi rất mong bạn sử dụng tính năng này với dữ liệu của riêng mình. Hãy nghĩ đến ngành nghề hoặc khu vực nơi bạn sống hoặc làm việc. Bạn có thể huấn luyện trên dữ liệu như vậy để đưa ra dự đoán có thể hữu ích cho bạn (hoặc người khác) trong tương lai như thế nào? Bất động sản không phải là ví dụ duy nhất ở đây. Bạn cũng nên áp dụng phương pháp này cho những thách thức của riêng mình. Chúc bạn hack thành công!
Đừng quên gắn thẻ chúng tôi trong mọi nội dung bạn tạo bằng hashtag #MadeWithTFJS (nhấp vào đường liên kết này để xem nội dung sáng tạo của người khác) để có cơ hội xuất hiện trên mạng xã hội hoặc thậm chí được giới thiệu tại các sự kiện TensorFlow trong tương lai! Chúng tôi rất mong được xem sản phẩm của bạn và tất nhiên, hãy liên hệ với tác giả của lớp học lập trình này nếu bạn có ý kiến phản hồi hoặc câu hỏi.
Các lớp học lập trình khác về TensorFlow.js để tìm hiểu sâu hơn
- Viết một mạng nơron từ đầu trong TensorFlow.js
- Nhận dạng âm thanh bằng cách sử dụng phương pháp học chuyển đổi trong TensorFlow.js
- Phân loại hình ảnh tuỳ chỉnh bằng cách sử dụng tính năng học chuyển đổi trong TensorFlow.js