RandomAugmentationPipeline
類別keras_cv.layers.RandomAugmentationPipeline(
layers, augmentations_per_image, rate=1.0, auto_vectorize=False, seed=None, **kwargs
)
RandomAugmentationPipeline 會根據提供的參數建構管道。
實作的策略會執行以下操作:對於在 call()
中提供的每個輸入,策略首先會輸入一個亂數,如果該數字 < 比率,則策略會從提供的 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.5*0.5*0.5。tf.vectorized_map
或 tf.map_fn
來套用增強。這提供了顯著的效能提升,但只有在提供給 layers
參數的所有層都支援自動向量化的情況下才能使用。