训练集未显示在 matplotlib 中

问题描述 投票:0回答:1

由于某种原因,我的训练集没有显示为 matplotlib 图,我使用的是 torchvision 数据集 MNIST。抱歉,如果我的代码不是最有效的,只是启动 pytorch。

代码运行没有任何错误,但不会显示数据图表。我尝试执行 .view() 将数据形状从 (1, 28, 28) 重塑为允许的 (28, 28),但数据不会显示。这是我的代码:

import torch
import torchvision
import matplotlib.pyplot as plt
from torchvision import transforms, datasets

train = datasets.MNIST("", train=True, download=True,
                       transform= transforms.Compose([transforms.ToTensor()]))

test = datasets.MNIST("", train=False, download=True,
                       transform= transforms.Compose([transforms.ToTensor()]))

trainset = torch.utils.data.DataLoader(train, batch_size=10, shuffle=True)
testset = torch.utils.data.DataLoader(test, batch_size=10, shuffle=True)


for data in trainset:
    print(data)
    break

x, y = data[0][0], data[1][0]


print(y)


plt.imshow(data[0][0].view(28,28))
plt.show()
python deep-learning pytorch neural-network mnist
1个回答
0
投票

首先,在循环内部定义x, y。

for data in trainset:
    x, y = data[0][0], data[1][0]
    break

然后使用 .reshape() 将 (1, 28, 28) 更改为 (28, 28)

x = x.reshape([28, 28])

转换为 numpy 数组(更适合 matplotlib)并绘图

x = x.numpy()
plt.imshow(x, cmap="Greys_r")
plt.show()

下面是输出

Output

© www.soinside.com 2019 - 2024. All rights reserved.