Làm thế nào để xử lý dữ liệu bằng khung học sâu PyTorch?

công nghệ số5tháng trướccập nhật AIANT
102 00





Xử lý dữ liệu trong Deep Learning với PyTorch

Trong việc xử lý công việc phức tạp bằng Deep Learning, việc chuẩn bị dữ liệu là một phần quan trọng. PyTorch, một khung làm việc phổ biến trong lĩnh vực này, cung cấp các công cụ mạnh mẽ để xử lý dữ liệu. Thông qua PyTorch, các nhà phát triển có thể dễ dàng tải, làm sạch, tăng cường và chuyển đổi dữ liệu để đảm bảo chất lượng và phù hợp với nhu cầu của mô hình. Những thao tác này đóng vai trò quan trọng trong việc cải thiện hiệu quả đào tạo và khả năng tổng quát hóa của mô hình.

Các tập dữ liệu thông dụng trong lĩnh vực Deep Learning bao gồm tập dữ liệu số hóa tay viết MNIST, tập dữ liệu phân loại hình ảnh nhỏ CIFAR10 và CIFAR100, tập dữ liệu biểu cảm khuôn mặt JAFFE, và tập dữ liệu Pascal VOC. Hai tập dữ liệu quy mô lớn khác là COCO và ImageNet.

Ví dụ, tập dữ liệu MNIST bao gồm các hình ảnh số hóa tay viết. Tập huấn luyện có 60,000 hình ảnh, trong khi tập kiểm tra có 10,000 hình ảnh. Mỗi hình ảnh trong MNIST là một hình ảnh xám kích thước 28×28 pixel chứa một chữ số từ 0 đến 9.

Tại mô-đun datasets trong gói torchvision, có nhiều tập dữ liệu sẵn dùng. Ví dụ, với tập dữ liệu MNIST, cách sử dụng như sau:

Khi huấn luyện mô hình mạng nơ-ron, chúng ta sử dụng train_loader hoặc test_loader, mỗi lần lấy ra một lô dữ liệu.

Một lô dữ liệu có dạng [N, C, H, W], trong đó “N” là kích thước lô, “C” là số kênh, “H” và “W” là chiều cao và chiều rộng. Giả sử kích thước lô huấn luyện được đặt thành 16, nên “N” bằng 16; vì các hình ảnh trong tập dữ liệu MNIST là hình ảnh xám đơn kênh, nên “C” bằng 1; khi tiền xử lý hình ảnh, chúng ta điều chỉnh kích thước hình ảnh thành 32×32, do đó “W” và “H” đều bằng 32.

Dưới đây là mã lệnh để trực quan hóa một lô dữ liệu từ train_loader, kết quả như Hình 2.4 cho thấy.

Nó có thể được chú ý rằng hình ảnh có nhãn 7 ở góc dưới bên phải đã được xử lý bằng phép xoay ngang.

Ngoài tập dữ liệu MNIST, các tập dữ liệu kinh điển khác như CIFAR10 và CIFAR100 cũng có thể tìm thấy trong mô-đun torchvision.datasets, cách sử dụng tương tự như với tập dữ liệu MNIST.

Bên cạnh những tập dữ liệu kinh điển này, đôi khi cần sử dụng các tập dữ liệu tùy chỉnh theo yêu cầu cụ thể của dự án. Lớp dữ liệu tùy chỉnh MyDataset cần kế thừa lớp abstract Dataset từ torch.utils.Dataset và thực hiện ba phương thức: init(), len() và getitem(). Ví dụ:

Lấy dữ liệu từ tập dữ liệu tùy chỉnh:

Ngoài ra, trong mô-đun torchvision.datasets, có một trình tải dữ liệu chung gọi là ImageFolder. Khi dữ liệu được phân loại vào các thư mục riêng biệt theo nhãn, ví dụ:

Trong trường hợp này, chúng ta có thể sử dụng torchvision.datasets.ImageFolder để xây dựng dữ liệu, mã như sau:

Mô-đun transforms trong torchvision cung cấp các thao tác thông dụng trên đối tượng PIL Image và Tensor, giúp dễ dàng tiền xử lý dữ liệu hình ảnh. Nhập mô-đun này:

Các thao tác thông dụng như sau:

Nếu muốn áp dụng nhiều thao tác tiền xử lý trên tập dữ liệu, chúng ta có thể sử dụng hàm transforms.Compose() để nối các thao tác lại.

Làm thế nào để xử lý dữ liệu bằng khung học sâu PyTorch?
Làm thế nào để xử lý dữ liệu bằng khung học sâu PyTorch?
Làm thế nào để xử lý dữ liệu bằng khung học sâu PyTorch?
Làm thế nào để xử lý dữ liệu bằng khung học sâu PyTorch?

**Từ khóa:**
– Xử lý dữ liệu
– Deep Learning
– PyTorch
– MNIST
– torchvision

© Thông báo bản quyền

Những bài viết liên quan:

Chưa có đánh giá nào

none
Không có đánh giá...