RandAugment layer
- 원본 링크 : https://keras.io/api/keras_cv/layers/augmentation/rand_augment/
- 최종 확인 : 2024-11-25
RandAugment
class
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 performs the Rand Augment operation on input images.
This layer can be thought of as an all-in-one image augmentation layer. The policy implemented by this layer has been benchmarked extensively and is effective on a wide variety of datasets.
The policy operates as follows:
For each augmentation in the range [0, augmentations_per_image]
,
the policy selects a random operation from a list of operations.
It then samples a random number and if that number is less than
rate
applies it to the given image.
References
Arguments
- value_range: the range of values the incoming images will have.
Represented as a two number tuple written [low, high].
This is typically either
[0, 1]
or[0, 255]
depending on how your preprocessing pipeline is set up. - augmentations_per_image: the number of layers to use in the rand augment
policy, defaults to
3
. - magnitude: magnitude is the mean of the normal distribution used to
sample the magnitude used for each data augmentation. Magnitude
should be a float in the range
[0, 1]
. A magnitude of0
indicates that the augmentations are as weak as possible (not recommended), while a value of1.0
implies use of the strongest possible augmentation. All magnitudes are clipped to the range[0, 1]
after sampling. Defaults to0.5
. - magnitude_stddev: the standard deviation to use when drawing values for
the perturbations. Keep in mind magnitude will still be clipped to
the range
[0, 1]
after samples are drawn from the normal distribution. Defaults to0.15
. - rate: the rate at which to apply each augmentation. This parameter is
applied on a per-distortion layer, per image. Should be in the range
[0, 1]
. To reproduce the original RandAugment paper results, set this to10/11
. The originalRandAugment
paper includes an Identity transform. By setting the rate to 10/11 in our implementation, the behavior is identical to sampling an Identity augmentation 10/11th of the time. Defaults to1.0
. - geometric: whether to include geometric augmentations. This should be set to False when performing object detection. Defaults to True.
Example
(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)