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