Chương 02
Published:
Cơ bản về PyTorch
Trong chương trước, chúng ta đã tìm hiểu về các khối xây dựng cơ bản của mạng neural và triển khai forward và backward propagation trong Python.
Chương này, chúng ta sẽ đi sâu vào các nền tảng của việc xây dựng mạng neural bằng PyTorch, mà chúng ta sẽ dùng lại nhiều lần về các trường hợp sử dụng khác nhau trong phân tích hình ảnh. Chúng ta sẽ bắt đầu bằng cách tìm hiểu về tensor, các phép biến đổi cho tensor và cách tận dụng chúng khi xây dựng mạng neural trên bộ dữ liệu đơn giản trước khi áp dụng cho các dataset thực tế ở chương sau. Điều này sẽ cho phép chúng ta hiểu cách xây dựng mạng neural bằng PyTorch một cách trực quan. Cuối cùng, chúng ta sẽ tìm hiểu về cách triển khai các hàm mất mát (loss function) để có thể tùy chỉnh dựa trên các trường hợp khác nhau.
Các hoạt động trong chương này:
- Cài đặt PyTorch
- PyTorch tensor
- Xây dựng mạng neural với PyTorch
- Sử dụng sequential method để xây dựng mạng neural
- Lưu và tải một PyTorch model
Cài đặt Pytorch
Trước khi cài đặt Pytorch, ta cần cài đặt Python thông qua anaconda. Các bạn có thể cài đặt Python 2 hoặc 3, mình khuyến khích chọn bản mới nhất của Python 3. Chú ý nhớ chọn Add Anaconda to my PATH environment variable.
Tiếp theo, để cài đặt Pytorch, ta chỉ cần vào trang chủ https://pytorch.org/, chọn mục QUICK START LOCALLY, sau đó lựa chọn cấu hình tương ứng với máy tính của bạn
Sau đó copy câu lệnh tại mục Run this Commnad, ví dụ trong hình trên là install pytorch torchvision cpuonly -c pytorch
, và chạy trong terminal để cài đặt Pytorch. Để kiểm tra xem việc cài đặt có thành công hay không, các bạn gõ lệnh python
trong terminal, sao đó chạy đoạn code sau
>>> import torch
>>> print(torch.__version__)
PyTorch Tensors
Tensor là kiểu dữ liệu cơ bản của PyTorch, 1 tensor là một ma trận nhiều chiều tương tự như Numpy’s arrays:
- 1 số được biểu điễn là 1 tensor 0 chiều.
- 1 vector biểu diễn bằng 1 tensor 1 chiều.
- 1 ma trận 2 chiều được biểu diễn bằng 1 tensor 2 chiều.
- 1 ma trận $m$ chiều biểu diễn bằng 1 tensor $m$ chiều.
1 tensor có thể được minh hoạ như hình sau:
Ví dụ, 1 bức ảnh màu RGB bao gồm height x width x 3
được biểu diễn bằng 1 tensor 3 chiều. Tương tự, 1 bức ảnh xám được biểu diễn bằng 1 tensor 2 chiều.
Đến cuối phần này, chúng ta sẽ tìm hiểu lý do tại sao tensor lại hữu ích và cách khởi tạo chúng, cũng như thực hiện các thao tác khác nhau trên tensor. Đây sẽ là cơ sở để chúng ta nghiên cứu việc tận dụng tensor để xây dựng mô hình mạng neural ở phần sau.