MNIST 绘制转换后的第一个测试图
MNIST plot first test figure after transform
这是我的一些代码,我想知道如何添加代码来绘制转换后测试数据集中的第一个图形?
transform=transforms.Compose([
transforms.ToTensor(),
AddGaussianNoise(0, 1),
transforms.Normalize((0.1307,), (0.3081,))
])
dataset1 = datasets.MNIST('../data', train=True, download=True,
transform=transform)
dataset2 = datasets.MNIST('../data', train=False,
transform=transform)
train_loader = torch.utils.data.DataLoader(dataset1,**train_kwargs)
test_loader = torch.utils.data.DataLoader(dataset2, **test_kwargs)
model = Net().to(device)
optimizer = optim.Adadelta(model.parameters(), lr=args.lr)
scheduler = StepLR(optimizer, step_size=1, gamma=args.gamma)
for epoch in range(1, args.epochs + 1):
train(args, model, device, train_loader, optimizer, epoch)
test(model, device, test_loader)
scheduler.step()
if args.save_model:
torch.save(model.state_dict(), "mnist_cnn.pt")
试试这个:
import torchvision.utils as vutils
import matplotlib.pyplot as plt
# get batch from dataloader -> (bs, ch, h, w)
imgs, lbls = next(iter(test_loader))
# make grid using images of the batch
img = vutils.make_grid(imgs)
fig = plt.figure()
plt.axis("off")
# channels first to channels last conversion using permute
plt.imshow(img.permute(1, 2, 0))
plt.show()
这是我的一些代码,我想知道如何添加代码来绘制转换后测试数据集中的第一个图形?
transform=transforms.Compose([
transforms.ToTensor(),
AddGaussianNoise(0, 1),
transforms.Normalize((0.1307,), (0.3081,))
])
dataset1 = datasets.MNIST('../data', train=True, download=True,
transform=transform)
dataset2 = datasets.MNIST('../data', train=False,
transform=transform)
train_loader = torch.utils.data.DataLoader(dataset1,**train_kwargs)
test_loader = torch.utils.data.DataLoader(dataset2, **test_kwargs)
model = Net().to(device)
optimizer = optim.Adadelta(model.parameters(), lr=args.lr)
scheduler = StepLR(optimizer, step_size=1, gamma=args.gamma)
for epoch in range(1, args.epochs + 1):
train(args, model, device, train_loader, optimizer, epoch)
test(model, device, test_loader)
scheduler.step()
if args.save_model:
torch.save(model.state_dict(), "mnist_cnn.pt")
试试这个:
import torchvision.utils as vutils
import matplotlib.pyplot as plt
# get batch from dataloader -> (bs, ch, h, w)
imgs, lbls = next(iter(test_loader))
# make grid using images of the batch
img = vutils.make_grid(imgs)
fig = plt.figure()
plt.axis("off")
# channels first to channels last conversion using permute
plt.imshow(img.permute(1, 2, 0))
plt.show()