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() 中提供的每個輸入,策略首先會輸入一個亂數,如果該數字 < 比率,則策略會從提供的 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)

參數

  • layerskeras.Layers 的列表。這些是在增強期間隨機輸入的,用於增強傳遞到 call() 中的輸入。傳遞的層應該繼承 BaseImageAugmentationLayer。傳遞 layers=[] 將導致無操作。
  • augmentations_per_image:要套用到 call() 方法中每個輸入的層數。
  • rate:套用每個增強的比率。這是針對每個增強基礎套用的,因此如果 augmentations_per_image=3rate=0.5,則圖像不會收到任何增強的機率為 0.5^3,或 0.5*0.5*0.5。
  • auto_vectorize:是否使用 tf.vectorized_maptf.map_fn 來套用增強。這提供了顯著的效能提升,但只有在提供給 layers 參數的所有層都支援自動向量化的情況下才能使用。
  • seed:整數。用於建立隨機種子。