mindspore.dataset.vision.UniformAugment

View Source On Gitee
class mindspore.dataset.vision.UniformAugment(transforms, num_ops=2)[source]

Uniformly select a number of transformations from a sequence and apply them sequentially and randomly, which means that there is a chance that a chosen transformation will not be applied.

All transformations in the sequence require the output type to be the same as the input. Thus, the latter one can deal with the output of the previous one.

Parameters
  • transforms (Sequence) – Sequence of transformations to select from.

  • num_ops (int, optional) – Number of transformations to be sequentially and randomly applied. Default: 2.

Raises
  • TypeError – If transforms is not a sequence of data processing operations.

  • TypeError – If num_ops is not of type integer.

  • ValueError – If num_ops is not positive.

Supported Platforms:

CPU

Examples

>>> 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)
Tutorial Examples: