mindspore.dataset.transforms.RandomApply
- class mindspore.dataset.transforms.RandomApply(transforms, prob=0.5)[源代码]
指定一组数据增强处理及其被应用的概率,在运算时按概率随机应用其中的增强处理。
- 参数:
transforms (list) - 一个数据增强的列表。
prob (float, 可选) - 随机应用某个数据增强的概率,取值范围:[0.0, 1.0]。默认值:
0.5
。
- 异常:
TypeError - 参数 transforms 类型不为list。
ValueError - 参数 transforms 的长度为空。
TypeError - 参数 transforms 的元素不是Python可调用对象或audio/text/transforms/vision模块中的数据处理操作。
TypeError - 参数 prob 的类型不为float。
ValueError - 参数 prob 的取值范围不为[0.0, 1.0]。
- 支持平台:
CPU
样例:
>>> import numpy as np >>> import mindspore.dataset as ds >>> import mindspore.dataset.transforms as transforms >>> 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) >>> transforms_list = [vision.RandomHorizontalFlip(0.5), ... vision.Normalize((0.491, 0.482, 0.447), (0.247, 0.243, 0.262)), ... vision.RandomErasing()] >>> composed_transform = Compose([transforms.RandomApply(transforms_list, prob=0.6), ... vision.ToTensor()]) >>> >>> data = np.random.randint(0, 255, size=(1, 100, 100, 3)).astype(np.uint8) >>> numpy_slices_dataset = ds.NumpySlicesDataset(data, ["image"]) >>> numpy_slices_dataset = numpy_slices_dataset.map(operations=composed_transform, 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.HsvToRgb(is_hwc=True), vision.Crop((0, 0), 10), vision.ToTensor()] >>> output = transforms.RandomApply(transform, prob=1.0)(data) >>> print(output.shape, output.dtype) (3, 10, 10) float32 >>> ds.config.set_seed(seed)