mindspore.dataset.vision.UniformAugment

查看源文件
class mindspore.dataset.vision.UniformAugment(transforms, num_ops=2)[源代码]

从指定序列中均匀采样一批数据处理操作,并按顺序随机执行,即采样出的操作也可能不被执行。

序列中的所有数据处理操作要求具有相同的输入和输出类型。后一个操作能够处理前一个操作的输出数据。

参数:
  • transforms (Sequence) - 数据处理操作序列。

  • num_ops (int,可选) - 均匀采样的数据处理操作数。默认值: 2

异常:
  • TypeError - 当 transforms 的类型不为数据处理操作序列。

  • TypeError - 当 num_ops 的类型不为int。

  • ValueError - 当 num_ops 不为正数。

支持平台:

CPU

样例:

>>> import numpy as np
>>> import mindspore.dataset as ds
>>> import mindspore.dataset.vision as vision
>>> from mindspore.dataset.transforms import Compose
>>>
>>> # Use the transform in dataset pipeline mode
>>> seed = ds.config.get_seed()
>>> ds.config.set_seed(12345)
>>> data = np.random.randint(0, 255, size=(1, 100, 100, 3)).astype(np.uint8)
>>> numpy_slices_dataset = ds.NumpySlicesDataset(data, ["image"])
>>> transform = [vision.CenterCrop(64),
...              vision.RandomColor(),
...              vision.RandomSharpness(),
...              vision.RandomRotation(30)]
>>> transforms_list = Compose([vision.UniformAugment(transform),
...                            vision.ToTensor()])
>>> # apply the transform to dataset through map function
>>> numpy_slices_dataset = numpy_slices_dataset.map(operations=transforms_list, input_columns="image")
>>> for item in numpy_slices_dataset.create_dict_iterator(num_epochs=1, output_numpy=True):
...     print(item["image"].shape, item["image"].dtype)
...     break
(3, 100, 100) float32
>>>
>>> # Use the transform in eager mode
>>> data = np.random.randint(0, 255, size=(100, 100, 3)).astype(np.uint8)
>>> transform = [vision.RandomCrop(size=[20, 40], padding=[32, 32, 32, 32]),
...              vision.RandomCrop(size=[20, 40], padding=[32, 32, 32, 32])]
>>> output = vision.UniformAugment(transform)(data)
>>> print(output.shape, output.dtype)
(20, 40, 3) uint8
>>> ds.config.set_seed(seed)
教程样例: