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)