n_samples = 100X_train = datasetsMNISTroot=data train=True download=True transform=transformsComposetransformsToTensoridx = npappendnpwhereX_traintargets == 00n_samples
以上代码是用于加载MNIST数据集,并展示其中的一部分数据样本。具体解析如下:
- 首先,导入所需的库和模块:
datasets.MNIST: 用于下载和加载MNIST数据集。transforms: 用于定义对数据进行预处理的转换操作。np: 别名为numpy,用于处理矩阵和数组的数值计算。torch.utils.data.DataLoader: 用于创建数据加载器,方便批处理和数据的随机洗牌。plt: 别名为matplotlib.pyplot,用于绘制数据图形。
-
定义训练样本数量
n_samples为100。 -
使用
datasets.MNIST类从网络上下载MNIST数据集,并将其保存在指定的路径./data下。同时,定义了数据预处理的转换操作transforms.Compose([transforms.ToTensor()]),将数据转换为PyTorch支持的张量格式。 -
使用
np.where函数找到MNIST数据集中标签为0和1的样本的索引,并使用np.append函数将这些索引合并为一个索引数组idx。 -
利用索引数组
idx从MNIST数据集中选择对应的数据和标签,并更新X_train.data和X_train.targets。 -
使用
torch.utils.data.DataLoader创建训练数据加载器train_loader,设置批量大小为1,并将数据随机洗牌。 -
定义要展示的样本数量
n_samples_show为6。 -
使用
iter函数将训练数据加载器转换为可迭代对象data_iter。 -
使用
plt.subplots创建一个包含1行和n_samples_show列的图形,并设置图形的大小为(10, 3)。 -
使用循环从数据迭代器中获取样本数据,并在图形中展示。
- 使用
data_iter.__next__()函数获取下一个批次的样本数据和标签。 - 使用
axes[n_samples_show - 1]获取当前子图对象。 - 使用
imshow函数将图像数据转换为numpy数组,并以灰度色彩图的形式展示。 - 使用
set_xticks和set_yticks函数将x轴和y轴的刻度设置为空集。 - 使用
set_title函数设置子图的标题,显示样本的标签。 - 每次循环结束,将
n_samples_show减1,直到所有样本都展示完毕。
- 最后,使用
plt.show()函数显示图形
原文地址: https://www.cveoy.top/t/topic/iq8X 著作权归作者所有。请勿转载和采集!