RandAugment
类keras_cv.layers.RandAugment(
value_range,
augmentations_per_image=3,
magnitude=0.5,
magnitude_stddev=0.15,
rate=0.9090909090909091,
geometric=True,
seed=None,
**kwargs
)
RandAugment 对输入图像执行 Rand Augment 操作。
可以将此层视为一个一体化的图像增强层。此层实现的策略已在各种数据集上经过广泛的基准测试,并且效果良好。
该策略的工作原理如下:
对于 [0, augmentations_per_image]
范围内的每个增强,该策略从操作列表中选择一个随机操作。然后,它会采样一个随机数,如果该数小于 rate
,则将该操作应用于给定的图像。
参考资料
参数
[0, 1]
或 [0, 255]
,具体取决于预处理管道的设置方式。3
。[0, 1]
范围内的浮点数。0
的 magnitude 表示增强强度尽可能弱(不建议),而 1.0
的值表示使用尽可能强的增强。在采样后,所有幅度值都会被剪裁到 [0, 1]
范围内。默认为 0.5
。[0, 1]
范围内。默认为 0.15
。[0, 1]
范围内。要复制原始 RandAugment 论文的结果,请将其设置为 10/11
。原始 RandAugment
论文包含一个恒等变换。通过在我们的实现中将速率设置为 10/11,其行为等同于 10/11 的时间采样恒等增强。默认为 1.0
。示例
(x_test, y_test), _ = keras.datasets.cifar10.load_data()
rand_augment = keras_cv.layers.RandAugment(
value_range=(0, 255), augmentations_per_image=3, magnitude=0.5
)
x_test = rand_augment(x_test)