返回
浅谈初学者如何认识MNIST数据集以及如何切割可视化
前端
2023-12-13 16:57:46
如今,人工智能技术已经渗透到我们生活的方方面面,机器学习作为人工智能领域的重要组成部分,也备受关注。机器学习入门通常从识别手写数字开始,而MNIST数据集是机器学习领域中经典的数据集之一,它包含了60,000张手写数字图片,这些图片的大小都是28*28像素。
在对MNIST数据集进行训练之前,我们需要先将图片的可视化,以便于我们更好地理解数据。
首先,我们需要在src目录下新建一个data/mnist文件夹,并将MNIST数据集的内容放入其中。MNIST数据集包含两个文件:mnist_images.png和mnist_labels.csv,mnist_images.png是所有手写数字图片的集合,而mnist_labels.csv则是这些图片对应的标签。
接下来,我们需要使用Python中的PIL库读取mnist_images.png图片。PIL库是一个功能强大的图像处理库,它可以读取、修改和保存各种格式的图片。
from PIL import Image
import numpy as np
# 读取mnist_images.png图片
image = Image.open('data/mnist/mnist_images.png')
然后,我们需要将图片切割成28*28的小图片。我们可以使用PIL库的crop()方法来实现这一点。
# 将图片切割成28*28的小图片
images = []
for i in range(0, 28):
for j in range(0, 28):
# 从图片中切割出第i行第j列的28*28的小图片
image_crop = image.crop((i*28, j*28, (i+1)*28, (j+1)*28))
# 将小图片转换为NumPy数组
image_array = np.array(image_crop)
# 将NumPy数组添加到列表中
images.append(image_array)
最后,我们需要使用NumPy和Matplotlib将这些小图片可视化成图片。
import matplotlib.pyplot as plt
# 将列表中的小图片可视化成图片
fig, axs = plt.subplots(10, 10, figsize=(10, 10))
axs = axs.ravel()
for i in range(100):
axs[i].imshow(images[i], cmap='gray')
axs[i].axis('off')
# 显示图片
plt.show()
通过上面的代码,我们可以将MNIST数据集中的图片切割成28*28的小图片,并将其可视化成图片。这有助于我们更好地理解数据,并为后续的训练做准备。