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
次。
此层可用于创建类似于 RandAugment
或 AutoAugment
的自定义策略。
示例
# 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)
参数
keras.Layers
列表。在增强期间,这些层会被随机输入以增强在 call()
中传递的输入。传递的层应为 BaseImageAugmentationLayer
的子类。传递 layers=[]
将导致不执行任何操作。call()
方法中应用于每个输入的层的数量。augmentations_per_image=3
且 rate=0.5
,则图像不接收任何增强的几率为 0.5^3 或 0.50.50.5。tf.vectorized_map
或 tf.map_fn
来应用增强。这提供了显著的性能提升,但仅当提供给 layers
参数的所有层都支持自动矢量化时才能使用。