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

RandomAugmentationPipeline 层

[来源]

RandomAugmentationPipeline

keras_cv.layers.RandomAugmentationPipeline(
    layers, augmentations_per_image, rate=1.0, auto_vectorize=False, seed=None, **kwargs
)

RandomAugmentationPipeline 基于提供的参数构建一个管道。

实现的策略执行以下操作:对于在 call() 中提供的每个输入,策略首先输入一个随机数,如果该数 < rate,则策略从提供的 layers 列表中选择一个随机层。然后,它在输入上调用 layer()。这会执行 augmentations_per_image 次。

此层可用于创建类似于 RandAugmentAutoAugment 的自定义策略。

示例

# construct a list of layers
layers = keras_cv.layers.RandAugment.get_standard_policy(
    value_range=(0, 255), magnitude=0.75, magnitude_stddev=0.3
)
layers = layers[:4]  # slice out some layers you don't want for whatever
                       reason
layers = layers + [keras_cv.layers.GridMask()]

# create the pipeline.
pipeline = keras_cv.layers.RandomAugmentationPipeline(
    layers=layers, augmentations_per_image=3
)

augmented_images = pipeline(images)

参数

  • layers:一个 keras.Layers 列表。在增强期间,这些层会被随机输入以增强在 call() 中传递的输入。传递的层应为 BaseImageAugmentationLayer 的子类。传递 layers=[] 将导致不执行任何操作。
  • augmentations_per_image:在 call() 方法中应用于每个输入的层的数量。
  • rate:应用每个增强的比率。这基于每个增强应用,因此,如果 augmentations_per_image=3rate=0.5,则图像不接收任何增强的几率为 0.5^3 或 0.50.50.5。
  • auto_vectorize:是否使用 tf.vectorized_maptf.map_fn 来应用增强。这提供了显著的性能提升,但仅当提供给 layers 参数的所有层都支持自动矢量化时才能使用。
  • seed:整数。用于创建随机种子。