mindspore.dataset.vision.py_transforms.Normalize

class mindspore.dataset.vision.py_transforms.Normalize(mean, std)[源代码]

使用指定的均值和标准差,标准化shape为(C, H, W)的输入numpy.ndarray图像。

\[output_{c} = \frac{input_{c} - mean_{c}}{std_{c}}\]

Note

输入图像的像素值需要在[0.0, 1.0]范围内。否则,请先调用 mindspore.dataset.vision.py_transforms.ToTensor 进行转换。

参数:

  • mean (Union[float, Sequence[float]]) - 各通道的像素均值,取值范围为[0.0, 1.0]。若输入float,将为每个通道应用相同的均值;若输入Sequence[float],长度应与通道数相等,且对应通道顺序进行排列。

  • std (Union[float, Sequence[float]]) - 各通道的标准差,取值范围为(0.0, 1.0]。若输入float,将为每个通道应用相同的标准差;若输入Sequence[float],长度应与通道数相等,且对应通道顺序进行排列。

异常:

  • TypeError - 当输入图像的类型不为 numpy.ndarray

  • TypeError - 当输入图像的维度不为3。

  • NotImplementedError - 当输入图像的像素值类型为int。

  • ValueError - 当 meanstd 的长度不相等。

  • ValueError - 当 meanstd 的长度即不等于1,也不等于图像的通道数。

支持平台:

CPU

样例:

>>> from mindspore.dataset.transforms.py_transforms import Compose
>>>
>>> transforms_list = Compose([py_vision.Decode(),
...                            py_vision.RandomHorizontalFlip(0.5),
...                            py_vision.ToTensor(),
...                            py_vision.Normalize((0.491, 0.482, 0.447), (0.247, 0.243, 0.262))])
>>> # apply the transform to dataset through map function
>>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
...                                                 input_columns="image")