如何使用 torchvision 的导入数据集访问 MNIST 数据的各个数据点并从 trainset 对象检查它们的大小、形状等

How to access individual data points of MNIST data and check their size, shape etc from trainset object using torchvision's import dataset

下面的代码是

    from torchvision import datasets, transforms
    trainset = datasets.MNIST('./data/', download=True, train=True, transform=transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.1307,), (0.3081,))]))

我想可视化上面训练集变量中的第一个数据点。 我想通过 print(trainset[0]) 之类的操作查看第一个数据点的像素值,或者通过 print(trainset[0].size) 检查大小,或者通过 print(trainset[0].shape) 等检查形状

对于形状:

trainset.data.shape
torch.Size([60000, 28, 28])

第一个例子:

trainset.data[0]
tensor([[[0, 0, 0,  ..., 0, 0, 0],
         [0, 0, 0,  ..., 0, 0, 0],
         [0, 0, 0,  ..., 0, 0, 0],
         ...,
         [0, 0, 0,  ..., 0, 0, 0],
         [0, 0, 0,  ..., 0, 0, 0],
         [0, 0, 0,  ..., 0, 0, 0]]], dtype=torch.uint8)

要可视化数据,您可以绘制它。

import matplotlib.pyplot as plt
plt.imshow(trainset.data[0], cmap='gray')

查看第一张图片的像素值:

print(trainset.data[0])

求第一张图片的形状:

trainset.data[0].shape
>>>torch.Size([28, 28])

您可以将其替换为任何 i,而不是 0,其中 i = 数据集的大小