【发布时间】:2021-06-24 01:44:10
【问题描述】:
我下载了 MNIST 数据集并使用 imshow 函数以灰度绘制数据集的第一张图像。 这是我的代码。
import numpy as np
import matplotlib.pyplot as plt
import torch
import torchvision
from torchvision import transforms
# MNIST dataset
transform = transforms.Compose([transforms.ToTensor()])
train_dataset = torchvision.datasets.MNIST(root='./data',
train=True,
download=True,
transform=transform)
# Change data type : torch.Tensor -> numpy array
X = train_dataset.train_data.numpy()
y = train_dataset.train_labels.numpy()
print('Data size: ' + str(X.shape))
num_samples, height, width = X.shape
dim = height * width
# Visualize MNIST data (1st digit)
plt.figure(1)
plt.imshow(X[0],cmap='gray_r')
plt.colorbar()
plt.title('1st image label: 5')
我得到了这个数字
将二维图像向量重塑为一维向量后,我想绘制 像这样的图。
x轴表示像素数,y轴表示其像素值为灰度颜色, 情节是这样的,有点像光谱。 我知道如何重塑矢量,但我不知道如何制作情节。 我可以用 matplotlib 模块中的函数制作第二个图吗?还是在某个地方?
【问题讨论】:
-
如果您使用
X[0].reshape((784, 1))而不是X[0].reshape(784),您应该能够像绘制原始 28x28 图像一样绘制图像,只是现在您的 y 轴只有 1 个像素强。 (我希望我没有误会这个问题)
标签: python numpy matplotlib plot pytorch