Đề cương khóa học
Mở đầu
- Giới thiệu về TensorFlow và học sâu
- Các trường hợp sử dụng và ứng dụng của TensorFlow
- Hệ sinh thái và công cụ của TensorFlow
- Lộ trình làm việc của học máy và học sâu
- Tổng quan về mục tiêu khóa học và các bài tập thực hành
TensorFlow 2.x so với các phiên bản trước — Những điểm mới
- Khác biệt chính giữa TensorFlow 1.x và 2.x
- Thực thi cấp sớm (Eager execution)
- API đơn giản hóa và tính dễ dùng được cải thiện
- Sự thay đổi trong việc xây dựng và huấn luyện mô hình
- Giới thiệu Keras như là API mức cao
- Các yếu tố cần xem xét khi di chuyển ứng dụng TensorFlow hiện có
- Thực hành tốt nhất cho TensorFlow 2.x
Thiết lập TensorFlow 2.x
- Cài đặt TensorFlow
- Cấu hình môi trường Python
- Kiểm tra cài đặt TensorFlow
- Cài đặt và quản lý các phụ thuộc cần thiết
- Cấu hình môi trường CPU và GPU
- Sử dụng TensorFlow với Jupyter notebooks
- Các lệnh và thao tác cơ bản của TensorFlow
- Khắc phục sự cố cài đặt và cấu hình
Tổng quan về các tính năng và kiến trúc của TensorFlow 2.x
- Kiến trúc TensorFlow và các thành phần cốt lõi
- Tensor và các thao tác tensor
- Biến và hằng số
- Biểu đồ tính toán và thực thi cấp sớm
- Tùy biến tự động
- API và module của TensorFlow
- Tích hợp Keras
- Đường dẫn dữ liệu với
tf.data - Chuẩn hóa mô hình và TensorFlow SavedModel
- Hệ sinh thái TensorFlow và quy trình phát triển
Cách mạng nơ-ron hoạt động
- Nền tảng của mạng nơ-ron nhân tạo
- Neuron, lớp và kiến trúc mạng
- Hàm kích hoạt (Activation functions)
- Truyền lan thuận (Forward propagation)
- Hàm mất mát (Loss functions)
- Truyền lan nghịch (Backpropagation)
- Giảm gradien và tối ưu hóa
- Tốc độ học và các chiến lược tối ưu hóa
- Vượt quá khớp (Overfitting) và chưa đủ khớp (Underfitting)
- Kỹ thuật điều hòa (Regularization)
- Đataset huấn luyện, xác thực và kiểm thử
Sử dụng TensorFlow 2.x để tạo mô hình học sâu
- Tạo tensor và biến
- Xây dựng mạng nơ-ron với Keras
- API mô hình tuần tự và hàm số (functional)
- Định nghĩa mô hình và lớp tùy chỉnh
- Cấu hình bộ tối ưu (optimizers)
- Chọn hàm mất mát phù hợp
- Huấn luyện mô hình với
fit() - Vòng lặp huấn luyện tùy chỉnh
- Callback và giám sát quá trình huấn luyện
- Quản lý checkpoint của mô hình
Phân tích dữ liệu
- Hiểu về dataset cho học máy
- Khám phá dữ liệu có cấu trúc và không có cấu trúc
- Trực quan hóa dữ liệu
- Xác định các mẫu và điểm bất thường
- Xử lý dữ liệu thiếu và không nhất quán
- Chia dữ liệu thành tập huấn luyện, xác thực và kiểm thử
- Chọn các đặc trưng (features) liên quan
- Chuẩn bị dataset cho các mô hình TensorFlow
Tiền xử lý dữ liệu
- Chuẩn hóa và bình thường hóa dữ liệu
- Mã hóa dữ liệu phân loại (categorical data)
- Xử lý giá trị thiếu
- Thang đo đặc trưng (Feature scaling)
- Tiền xử lý hình ảnh
- Tiền xử lý văn bản
- Tăng cường dữ liệu (Data augmentation)
- Xây dựng các đường dẫn đầu vào hiệu quả
- Sử dụng
tf.data - Batching, trộn (shuffling), cache và pre-fetch
- Chuẩn bị dữ liệu cho việc huấn luyện mô hình
Xây dựng một mô hình
- Chọn kiến trúc mạng nơ-ron phù hợp
- Định nghĩa đầu vào và đầu ra của mô hình
- Tạo các mạng nơ-ron đặc trưng (dense neural networks)
- Chọn hàm kích hoạt
- Cấu hình mô hình cho quá trình huấn luyện
- Chọn bộ tối ưu và hàm mất mát
- Huấn luyện và xác thực mô hình
- Giám sát các chỉ số huấn luyện
- Cải thiện hiệu suất mô hình
- Ngăn chặn vượt quá khớp
- Thực hiện điều hòa và dropout
Triển khai một bộ phân loại hình ảnh tiên tiến
- Nền tảng của phân loại hình ảnh
- Chuẩn bị dataset hình ảnh
- Chuẩn hóa và tăng cường hình ảnh
- Mạng nơ-ron tích chập (Convolutional neural networks)
- Lớp tích chập và lớp pooling
- Thiết kế kiến trúc phân loại hình ảnh
- Học chuyển giao (Transfer learning)
- Sử dụng các mô hình đã huấn luyện trước (pretrained models)
- Chỉnh sửa tinh (Fine-tuning) các mạng đã huấn luyện trước
- Xây dựng bộ phân loại hình ảnh tiên tiến
- Đánh giá hiệu năng phân loại
Huấn luyện mô hình
- Cấu hình các tham số huấn luyện
- Kích thước batch và số epoch
- Chọn bộ tối ưu
- Lịch trình tốc độ học (Learning-rate scheduling)
- Callback huấn luyện
- Dừng sớm (Early stopping)
- Checkpoint mô hình
- Giám sát tiến độ huấn luyện
- Phát hiện vượt quá khớp
- Cải thiện hiệu năng huấn luyện
- Các cân nhắc về huấn luyện phân tán
Huấn luyện trên GPU so với TPU
- Kiến trúc CPU, GPU và TPU
- Lợi ích của gia tốc phần cứng
- Cấu hình TensorFlow cho huấn luyện GPU
- Hiểu về huấn luyện dựa trên TPU
- Chọn phần cứng cho các khối lượng công việc khác nhau
- Di chuyển tính toán giữa các thiết bị
- Quản lý bộ nhớ và tài nguyên tính toán
- So sánh hiệu năng huấn luyện
- Các chiến lược huấn luyện phân tán và gia tốc
Đánh giá mô hình
- Chọn các chỉ số đánh giá phù hợp
- Độ chính xác, độ chính xác (precision), độ nhạy (recall) và điểm F1
- Các chỉ số đánh giá hồi quy
- Ma trận nhầm lẫn (Confusion matrices)
- Các chiến lược xác thực
- Đánh giá mô hình phân loại
- Đánh giá khả năng tổng quát hóa của mô hình
- Xác định các điểm yếu của mô hình
- So sánh các cấu hình mô hình khác nhau
Đưa ra dự đoán
- Sử dụng mô hình đã huấn luyện cho suy luận (inference)
- Chuẩn bị dữ liệu đầu vào mới
- Thực hiện dự đoán theo batch và riêng lẻ
- Diễn giải đầu ra của mô hình
- Khả năng phân loại
- Dự đoán hồi quy
- Xây dựng quy trình suy luận
- Xử lý dữ liệu chưa từng thấy
- Quản lý đường dẫn dự đoán
Đánh giá các dự đoán
- Phân tích chất lượng dự đoán
- So sánh dự đoán với kết quả mong đợi
- Xác định dương tính giả và âm tính giả
- Phân tích lỗi
- Đánh giá độ tin cậy của mô hình
- Trực quan hóa kết quả dự đoán
- Phát hiện thiên lệch trong dữ liệu và dự đoán
- Cải thiện hiệu năng mô hình dựa trên phân tích dự đoán
Gỡ lỗi mô hình
- Xác định các vấn đề huấn luyện phổ biến
- Chẩn đoán các dự đoán sai
- Gỡ lỗi đường dẫn dữ liệu
- Điều tra hành vi của hàm mất mát và các chỉ số
- Phát hiện gradien nổ (exploding) và gradien biến mất (vanishing)
- Chẩn đoán vượt quá khớp và chưa đủ khớp
- Kiểm tra các lớp và đầu ra của mô hình
- Sử dụng các công cụ gỡ lỗi và hồ sơ (profiling) của TensorFlow
- Cải thiện sự ổn định và hiệu năng của mô hình
Lưu trữ mô hình
- Lưu các mô hình đã huấn luyện
- Định dạng SavedModel của TensorFlow
- Lưu và khôi phục trọng số mô hình
- Lưu kiến trúc và cấu hình mô hình
- Tải mô hình để suy luận
- Phiên bản hóa mô hình
- Xuất mô hình để triển khai
- Quản lý các sản phẩm (artifacts) của mô hình
- Chuẩn bị mô hình cho môi trường production
Triển khai mô hình lên Cloud
- Giới thiệu về triển khai mô hình dựa trên cloud
- Chuẩn bị các mô hình TensorFlow cho production
- Cung cấp mô hình thông qua API
- Khái niệm về việc phục vụ mô hình (model serving)
- Container hóa các ứng dụng TensorFlow
- Suy luận dựa trên cloud
- Mở rộng khối lượng công việc phục vụ mô hình
- Giám sát các mô hình đã triển khai
- Quản lý phiên bản mô hình
- Các cân nhắc về triển khai production
Triển khai mô hình lên thiết bị di động
- Thách thức của học máy di động
- TensorFlow Lite
- Chuyển đổi các mô hình TensorFlow để triển khai trên di động
- Tối ưu hóa mô hình và giảm kích thước
- Lượng tử hóa (Quantization)
- Chạy suy luận trên thiết bị di động
- Quản lý tài nguyên của thiết bị di động
- Tích hợp mô hình vào các ứng dụng di động
- Thử nghiệm hiệu năng suy luận di động
Triển khai mô hình lên hệ thống nhúng (IoT)
- Học máy trên thiết bị nhúng
- TensorFlow Lite cho ứng dụng nhúng
- Ràng buộc tài nguyên và tối ưu hóa
- Giảm kích thước mô hình và yêu cầu tính toán
- Suy luận tại biên (Edge inference)
- Xử lý dữ liệu cảm biến và thời gian thực
- Chạy dự đoán cục bộ
- Cân nhắc về năng lượng và bộ nhớ
- Tích hợp mô hình TensorFlow vào quy trình IoT
- Thử nghiệm và giám sát triển khai biên
Tích hợp mô hình với các ngôn ngữ khác
- Khả năng tương tác của mô hình TensorFlow
- Cung cấp mô hình thông qua API
- Sử dụng các mô hình TensorFlow từ các môi trường lập trình khác nhau
- Tích hợp mô hình dựa trên Python
- Tích hợp mô hình vào các ứng dụng web
- Suy luận mô hình thông qua dịch vụ dựa trên REST
- Tích hợp TensorFlow vào các ứng dụng hiện có
- Giao tiếp dữ liệu và chuẩn hóa
- Các cân nhắc về tích hợp production
Khắc phục sự cố
- Chẩn đoán các vấn đề cài đặt TensorFlow
- Khắc phục lỗi khi xây dựng mô hình
- Gỡ lỗi các vấn đề tiền xử lý dữ liệu
- Giải quyết các thất bại trong quá trình huấn luyện
- Điều tra các vấn đề cấu hình GPU và TPU
- Chẩn đoán các vấn đề về bộ nhớ và hiệu năng
- Khắc phục sự cố khi tải và lưu mô hình
- Gỡ lỗi các vấn đề triển khai
- Các bài tập khắc phục sự cố thực tế
Tóm tắt và Kết luận
- Ôn tập các khái niệm về TensorFlow 2.x
- Ôn tập các quy trình làm việc của mạng nơ-ron và học sâu
- Ôn tập việc chuẩn bị dữ liệu và phát triển mô hình
- Ôn tập phân loại hình ảnh
- Ôn tập các kỹ thuật huấn luyện và đánh giá
- Ôn tập gỡ lỗi và tối ưu hóa mô hình
- Ôn tập triển khai trên cloud, di động và IoT
- Thực hành tốt nhất cho phát triển TensorFlow
- Bài tập thực hành cuối cùng
- Đặt câu hỏi và thảo luận
Yêu cầu
- Kinh nghiệm lập trình với Python.
- Kinh nghiệm với dòng lệnh Linux.
Đối tượng tham gia
- Nhà phát triển (Developers)
- Khoa học dữ liệu (Data Scientists)
Đánh giá (4)
Khóa đào tạo được tổ chức và lên kế hoạch tốt, và tôi đã ra về với kiến thức hệ thống hóa và cái nhìn tổng quan về các chủ đề chúng tôi đã xem xét
Magdalena - Samsung Electronics Polska Sp. z o.o.
Khóa học - Deep Learning with TensorFlow 2
Dịch thuật bằng máy
Kiến thức của giảng viên và sự thân thiện của họ. Họ có thể dễ dàng truyền đạt những kiến thức quan trọng.
Mateusz Stachyra - Samsung Electronics Polska Sp. z o.o.
Khóa học - Deep Learning with TensorFlow 2
Dịch thuật bằng máy
Tôi thích cách chúng ta đã bao quát các kiến thức cơ bản
Tomasz - Samsung Electronics Polska Sp. z o.o.
Khóa học - Deep Learning with TensorFlow 2
Dịch thuật bằng máy
Giảng viên đã giải thích nội dung một cách rõ ràng và thu hút suốt buổi học. Ông ấy dừng lại để đặt câu hỏi và cho chúng tôi tự tìm ra giải pháp trong một số buổi thực hành. Ông ấy cũng điều chỉnh khóa học phù hợp với nhu cầu của chúng tôi.
Robert Baker
Khóa học - Deep Learning with TensorFlow 2.0
Dịch thuật bằng máy