3.5. Bộ Dữ Liệu Phân Loại Ảnh (Fashion-MNIST)

3.5.1. Tải về Bộ dữ liệu¶

Cũng giống như với MNIST, Gluon giúp việc tải và nạp bộ dữ liệu FashionMNIST vào bộ nhớ trở nên dễ dàng với lớp FashionMNIST trong gluon.data.vision. Các cơ chế của việc nạp và khám phá bộ dữ liệu sẽ được hướng dẫn ngắn gọn bên dưới. Vui lòng tham khảo Section 18.9 để biết thêm chi tiết về việc nạp dữ liệu.

mnist_train = gluon.data.vision.FashionMNIST(train=True) mnist_test = gluon.data.vision.FashionMNIST(train=False)

FashionMNIST chứa các hình ảnh thuộc 10 lớp, mỗi lớp có 6000 ảnh trong tập huấn luyện và 1000 ảnh trong tập kiểm tra. Do đó, tập huấn luyện và tập kiểm tra sẽ chứa tổng cộng lần lượt 60000 và 10000 ảnh.

len(mnist_train), len(mnist_test) (60000, 10000)

Các ảnh trong Fashion-MNIST tương ứng với các lớp: áo phông, quần dài, áo thun, váy, áo khoác, dép, áo sơ-mi, giày thể thao, túi và giày cao gót. Hàm dưới đây giúp chuyển đổi các nhãn giá trị số thành tên của từng lớp.

# Saved in the d2l package for later use def get_fashion_mnist_labels(labels): text_labels = ['t-shirt', 'trouser', 'pullover', 'dress', 'coat', 'sandal', 'shirt', 'sneaker', 'bag', 'ankle boot'] return [text_labels[int(i)] for i in labels]

Chúng ta có thể tạo một hàm để minh hoạ các mẫu này.

# Saved in the d2l package for later use def show_images(imgs, num_rows, num_cols, titles=None, scale=1.5): """Plot a list of images.""" figsize = (num_cols * scale, num_rows * scale) _, axes = d2l.plt.subplots(num_rows, num_cols, figsize=figsize) axes = axes.flatten() for i, (ax, img) in enumerate(zip(axes, imgs)): ax.imshow(img.asnumpy()) ax.axes.get_xaxis().set_visible(False) ax.axes.get_yaxis().set_visible(False) if titles: ax.set_title(titles[i]) return axes

Dưới đây là các hình ảnh và nhãn tương ứng của chúng (ở dạng chữ) từ một vài mẫu đầu tiên trong tập huấn luyện.

X, y = mnist_train[:18] show_images(X.squeeze(axis=-1), 2, 9, titles=get_fashion_mnist_labels(y)); ../_images/output_fashion-mnist_vn_b0ad82_11_0.svg

Từ khóa » Bộ Dữ Liệu Mnist