即使在随机仿射(pytorch)之后,数据集也没有变化
there is no chage to the dataset even after random affine (pytorch)
我下载了两个版本的 mnist 数据集:一个没有任何转换,一个有随机仿射和归一化。
w/o转换代码:
mnist_train = torchvision.datasets.MNIST(root='MNIST_data/',
train=True,
transform=transforms.ToTensor(),
download=True)
转换代码:
train_transforms = transforms.Compose(
[transforms.RandomAffine(degrees=30),
transforms.ToTensor(),
transforms.Normalize(mean=(0.5,), std=(0.5,))])
augmented_data = torchvision.datasets.MNIST(root='aug_data/',
train=True,
transform=train_transforms,
download=True)
我从这两个打印了几个样本,但结果都是一样的。
有人能找出原因吗??
谢谢
没有增强的 MNIST 数据集,download=True
只是在您指定的 root
中下载相同的普通 MNIST 数据集。
当您访问数据集的元素时,将在线应用转换,例如augmented_data[0]
。这样,你指定的变换就应用到MNIST的第一张图片上了。
因此,如果你想检查差异,你必须使用一些可视化工具显示以这种方式访问的图像,例如通过使用 matplotlib.imshow
:
代码
import torch
import torchvision
from torchvision import transforms
import matplotlib.pyplot as plt
mnist_train = torchvision.datasets.MNIST(root='MNIST_data/',
train=True,
transform=transforms.ToTensor(),
download=True)
train_transforms = transforms.Compose(
[transforms.RandomAffine(degrees=30),
transforms.ToTensor(),
transforms.Normalize(mean=(0.5,), std=(0.5,))])
# you can use the same root, since the data is the same
augmented_data = torchvision.datasets.MNIST(root='MNIST_data/',
train=True,
transform=train_transforms,
download=True)
im = mnist_train[0][0][0]
aug_im = augmented_data[0][0][0]
# Normal image
plt.imshow(im, cmap="gray")
plt.colorbar()
plt.show()
# Agumented image
plt.imshow(aug_im, cmap="gray")
plt.colorbar()
plt.show()
结果
普通图像
增强图像
请注意 right-sided 颜色条中值范围的差异。
我下载了两个版本的 mnist 数据集:一个没有任何转换,一个有随机仿射和归一化。
w/o转换代码:
mnist_train = torchvision.datasets.MNIST(root='MNIST_data/',
train=True,
transform=transforms.ToTensor(),
download=True)
转换代码:
train_transforms = transforms.Compose(
[transforms.RandomAffine(degrees=30),
transforms.ToTensor(),
transforms.Normalize(mean=(0.5,), std=(0.5,))])
augmented_data = torchvision.datasets.MNIST(root='aug_data/',
train=True,
transform=train_transforms,
download=True)
我从这两个打印了几个样本,但结果都是一样的。 有人能找出原因吗??
谢谢
没有增强的 MNIST 数据集,download=True
只是在您指定的 root
中下载相同的普通 MNIST 数据集。
当您访问数据集的元素时,将在线应用转换,例如augmented_data[0]
。这样,你指定的变换就应用到MNIST的第一张图片上了。
因此,如果你想检查差异,你必须使用一些可视化工具显示以这种方式访问的图像,例如通过使用 matplotlib.imshow
:
代码
import torch
import torchvision
from torchvision import transforms
import matplotlib.pyplot as plt
mnist_train = torchvision.datasets.MNIST(root='MNIST_data/',
train=True,
transform=transforms.ToTensor(),
download=True)
train_transforms = transforms.Compose(
[transforms.RandomAffine(degrees=30),
transforms.ToTensor(),
transforms.Normalize(mean=(0.5,), std=(0.5,))])
# you can use the same root, since the data is the same
augmented_data = torchvision.datasets.MNIST(root='MNIST_data/',
train=True,
transform=train_transforms,
download=True)
im = mnist_train[0][0][0]
aug_im = augmented_data[0][0][0]
# Normal image
plt.imshow(im, cmap="gray")
plt.colorbar()
plt.show()
# Agumented image
plt.imshow(aug_im, cmap="gray")
plt.colorbar()
plt.show()
结果
普通图像
增强图像
请注意 right-sided 颜色条中值范围的差异。