reference:https://mxnet.incubator.apache.org/api/python/gluon/data.html
vision下面主要有一些数据集和transforms
transforms可以在训练数据的时候用来做数据增强,这里的数据集增强和image API中的数据集增强大同小异。
需要注意哪些转换需要在ToTensor之前,哪些需要在ToTensor之后
Taking note of which functions should be applied before and after ToTensor
- transforms.ToTensor是将一个image NDarray转化为 tensor NDarray
Converts an image NDArray of shape (H x W x C) in the range [0, 255] to a float32 tensor NDArray of shape (C x H x W) in the range [0, 1).
If batch input, converts a batch image NDArray of shape (N x H x W x C) in the range [0, 255] to a float32 tensor NDArray of shape (N x C x H x W).
pytorch中的输入是0-1之间的tensor,在进行转化的时候使用normalize将图片normalize到0-1之间,mean可以是一个list。gluon中与pytorch一致。可以使用transform.normalize(mean, std)将输入图像转化为tensor之后标准化。mean根据通道数目可以是一个list.
标准化normalization公式
而L1/L2-norm称为归一化
eg:
transformer = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize(mean =(0.485, 0.456, 0.406), std = (0.229, 0.224, 0.225))
])
在使用dataloader之前对dataset进行转换
mnist_valid = gluon.data.vision.FashionMNIST(train = False)
valid_data = gluon.data.DataLoader(mnist_valid.transform_first(transformer), batch_size = batch_size, num_workers = 4)