Giới thiệu tài liệu
Bài giảng này giới thiệu về phần cứng và phần mềm được sử dụng trong học sâu. Phần cứng bao gồm CPU, GPU và TPU, trong đó GPU và TPU được tối ưu hóa cho các phép toán song song cần thiết cho học sâu. Các nền tảng lập trình cho học sâu như PyTorch và TensorFlow cung cấp các công cụ để xây dựng và huấn luyện mạng nơ-ron một cách hiệu quả. Các công cụ tăng tốc và nén mạng giúp triển khai các mô hình học sâu trên các thiết bị di động và nhúng.
Đối tượng sử dụng
Bài giảng này dành cho sinh viên và các nhà nghiên cứu trong lĩnh vực học sâu, cung cấp kiến thức nền tảng về phần cứng và phần mềm cần thiết để xây dựng và triển khai các mô hình học sâu.
Nội dung tóm tắt
Bài giảng này tập trung vào các khía cạnh phần cứng và phần mềm trong lĩnh vực học sâu, cung cấp một cái nhìn tổng quan về các công nghệ và công cụ chính được sử dụng.
1. **Phần cứng cho học sâu:** So sánh giữa CPU, GPU và TPU, nhấn mạnh rằng GPU và TPU vượt trội hơn trong các tác vụ song song nhờ số lượng nhân lớn, điều này rất quan trọng trong các phép toán ma trận thường gặp trong học sâu. TPU, một phần cứng chuyên dụng cho học sâu, mang lại hiệu năng cao hơn so với GPU trong một số trường hợp nhất định. Bài giảng cũng giới thiệu một số thiết bị biên như NVIDIA DGX-2, NVidia, Google Coral và các thiết bị biên ARM, ARM NPU, được thiết kế để chạy các mô hình học sâu trên các thiết bị di động và nhúng.
2. **Nền tảng lập trình cho học sâu:** Trình bày các nền tảng lập trình phổ biến như PyTorch và TensorFlow. PyTorch được giới thiệu với khả năng tính toán gradient tự động (Autograd) và các module cấp cao (nn, optim) giúp đơn giản hóa việc xây dựng và huấn luyện mạng nơ-ron. TensorFlow được trình bày với cả hai chế độ: thực thi nóng (Eager Execution) cho phép thực thi các phép toán ngay lập tức và chế độ đồ thị tĩnh, nơi đồ thị tính toán được xây dựng trước và sau đó thực thi nhiều lần. Keras được giới thiệu như một lớp bao cấp cao xây dựng trên TensorFlow, cung cấp một API đơn giản và dễ sử dụng để xây dựng các mô hình học sâu. Việc sử dụng @tf.function trong TensorFlow để biên dịch đồ thị tính toán tĩnh cũng được đề cập để tối ưu hóa hiệu năng.
3. **Công cụ tăng tốc và nén mạng:** Giới thiệu các công cụ giúp tối ưu hóa và nén các mô hình học sâu để triển khai trên các thiết bị có tài nguyên hạn chế. Tensorflow Lite và NVIDIA TensorRT là hai công cụ chính được đề cập, cùng với một số công cụ khác như Pocket flow và Tencent NCNN.
4. **Đồ thị tính toán**: So sánh giữa đồ thị tính toán tĩnh và đồ thị tính toán động, nhấn mạnh rằng đồ thị tĩnh cho phép framework tối ưu hóa trước khi chạy, trong khi đồ thị động linh hoạt hơn nhưng có thể kém hiệu quả hơn.
5. **Tensorflow**: So sánh giữa Tensorflow 2.0 và các phiên bản trước, TensorFlow 2.0 giới thiệu chế độ Eager Execution (thực thi nóng), giúp dễ dàng bắt đầu và gỡ lỗi các mô hình TensorFlow hơn, vì các phép toán trả về các giá trị cụ thể thay vì xây dựng đồ thị tính toán rồi chạy sau.