Keras 3 API 文件 / KerasCV / / 增強層 / RandAugment 層

RandAugment 層

[來源]

RandAugment 類別

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 對輸入影像執行隨機增強操作。

此層可以被視為一個多合一的影像增強層。此層所執行的策略已經過廣泛的基準測試,並且在各種資料集上都非常有效。

此策略的運作方式如下:

對於 [0, augmentations_per_image] 範圍內的每次增強,此策略會從操作列表中選擇一個隨機操作。然後,它會取樣一個隨機數,如果該數字小於 rate,則將其應用於給定的影像。

參考

參數

  • value_range:輸入影像的值範圍。表示為一個由兩個數字組成的元組,寫作 [低, 高]。這通常是 [0, 1][0, 255],具體取決於預處理管線的設置方式。
  • augmentations_per_image:要在隨機增強策略中使用的層數,默認為 3
  • magnitude:magnitude 是用於為每個資料增強取樣所用幅度的常態分佈的均值。Magnitude 應該是介於 [0, 1] 之間的浮點數。Magnitude 為 0 表示增強程度盡可能小(不推薦),而值為 1.0 則表示使用最強的增強。在取樣後,所有 magnitude 都會被裁剪到 [0, 1] 的範圍內。默認為 0.5
  • magnitude_stddev:繪製擾動值時使用的標準差。請記住,在從常態分佈中提取樣本後,magnitude 仍然會被裁剪到 [0, 1] 的範圍內。默認為 0.15
  • rate:套用各項擴增的比率。此參數會針對每個失真層級和每個影像套用。數值應介於 [0, 1] 之間。如要重現原始 RandAugment 論文的結果,請將此值設為 10/11。原始 RandAugment 論文包含 Identity 轉換。在本實作中,將比率設為 10/11 的行為與在 10/11 的時間內取樣 Identity 擴增相同。預設值為 1.0
  • geometric:是否包含幾何擴增。執行物件偵測時,應將此值設為 False。預設值為 True。

範例

(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)