Keras 3 API 文档 / KerasCV / / 增强层 / RandAugment 层

RandAugment 层

[源代码]

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,则将该操作应用于给定的图像。

参考资料

参数

  • value_range:输入图像的值范围。以两个数字元组的形式表示,写为 [低,高]。这通常是 [0, 1][0, 255],具体取决于预处理管道的设置方式。
  • augmentations_per_image:在 rand 增强策略中使用的层数,默认为 3
  • magnitude:magnitude 是用于对每个数据增强进行采样的幅度值所使用的正态分布的均值。Magnitude 应为 [0, 1] 范围内的浮点数。0 的 magnitude 表示增强强度尽可能弱(不建议),而 1.0 的值表示使用尽可能强的增强。在采样后,所有幅度值都会被剪裁到 [0, 1] 范围内。默认为 0.5
  • magnitude_stddev:用于绘制扰动值的标准差。请记住,在从正态分布中绘制样本后,magnitude 仍然会被剪裁到 [0, 1] 范围内。默认为 0.15
  • rate:应用每个增强的速率。此参数在每个图像的每个失真层上应用。应在 [0, 1] 范围内。要复制原始 RandAugment 论文的结果,请将其设置为 10/11。原始 RandAugment 论文包含一个恒等变换。通过在我们的实现中将速率设置为 10/11,其行为等同于 10/11 的时间采样恒等增强。默认为 1.0
  • geometric:是否包含几何增强。在执行目标检测时,这应该设置为 False。默认为 True。

示例

(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)