mxnet学习(2):Tensor和Normalize

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).

https://mxnet.incubator.apache.org/api/python/gluon/data.html#mxnet.gluon.data.vision.transforms.ToTensor

pytorch中的输入是0-1之间的tensor,在进行转化的时候使用normalize将图片normalize到0-1之间,mean可以是一个list。gluon中与pytorch一致。可以使用transform.normalize(mean, std)将输入图像转化为tensor之后标准化。mean根据通道数目可以是一个list.

标准化normalization公式

norm=Imeanσnorm = \frac{I - mean}{\sigma}

而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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章