mindspore.dataset.vision.py_transforms.NormalizePad

class mindspore.dataset.vision.py_transforms.NormalizePad(mean, std, dtype='float32')[源代码]

使用指定的均值和标准差,标准化shape为(C, H, W)的输入numpy.ndarray图像,并填充一个全零的额外通道。

\[\begin{split}output_{c} = \begin{cases} \frac{input_{c} - mean_{c}}{std_{c}}, & \text{if} \quad 0 \le c < 3 \text{;}\\ 0, & \text{if} \quad c = 3 \text{.} \end{cases}\end{split}\]

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],长度应与通道数相等,且对应通道顺序进行排列。

  • dtype (str,可选) - 输出图像的数据类型,仅支持”float32”和”float16”,默认值:”float32”。

异常:

  • 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.NormalizePad((0.491, 0.482, 0.447), (0.247, 0.243, 0.262), "float32")])
>>> # apply the transform to dataset through map function
>>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
...                                                 input_columns="image")