RandomZoom
類別keras.layers.RandomZoom(
height_factor,
width_factor=None,
fill_mode="reflect",
interpolation="bilinear",
seed=None,
fill_value=0.0,
data_format=None,
**kwargs
)
一個在訓練期間隨機縮放圖片的預處理層。
此層會獨立地隨機縮放圖片的每個軸,並根據 fill_mode
填補空白區域。
輸入像素值可以是任何範圍(例如 [0., 1.)
或 [0, 255]
)且為整數或浮點數 dtype。預設情況下,此層會輸出浮點數。
輸入形狀
3D (未批次處理) 或 4D (已批次處理) 張量,形狀為:(..., height, width, channels)
,採用 "channels_last"
格式,或 (..., channels, height, width)
,採用 "channels_first"
格式。
輸出形狀
3D (未批次處理) 或 4D (已批次處理) 張量,形狀為:(..., target_height, target_width, channels)
,或 (..., channels, target_height, target_width)
,採用 "channels_first"
格式。
注意: 此層可以在 tf.data
管道內安全使用(與您使用的後端無關)。
參數
height_factor=(0.2, 0.3)
會產生在 [+20%, +30%]
範圍內隨機縮小的輸出。height_factor=(-0.3, -0.2)
會產生在 [+20%, +30%]
範圍內隨機放大的輸出。width_factor=(0.2, 0.3)
會產生縮放範圍在 20% 到 30% 之間的輸出。width_factor=(-0.3, -0.2)
會產生縮放範圍在 20% 到 30% 之間的輸出。None
表示以保持長寬比的方式縮放垂直和水平方向。預設值為 None
。"constant"
、"nearest"
、"wrap"
和 "reflect"
。預設值為 "constant"
。"reflect"
:(d c b a | a b c d | d c b a)
輸入透過反射最後一個像素的邊緣來延伸。"constant"
:(k k k k | a b c d | k k k k)
輸入透過在邊緣之外的所有值填入由 fill_value
指定的相同常數值 k 來延伸。"wrap"
:(a b c d | a b c d | a b c d)
輸入透過包裝到相反的邊緣來延伸。"nearest"
:(a a a a | a b c d | d d d d)
輸入透過最近的像素來延伸。請注意,當使用 torch 後端時,"reflect"
會重新導向至 "mirror"
(c d c b | a b c d | c b a b)
,因為 torch 不支援 "reflect"
。請注意,torch 後端不支援 "wrap"
。"nearest"
、"bilinear"
。fill_mode="constant"
時,要在邊界外填入的值。"channels_last"
或 "channels_first"
。輸入中維度的順序。"channels_last"
對應於形狀為 (batch, height, width, channels)
的輸入,而 "channels_first"
對應於形狀為 (batch, channels, height, width)
的輸入。預設值為在您的 Keras 組態檔 ~/.keras/keras.json
中找到的 image_data_format
值。如果您從未設定過,則預設值將為 "channels_last"
。name
和 dtype
。範例
>>> input_img = np.random.random((32, 224, 224, 3))
>>> layer = keras.layers.RandomZoom(.5, .2)
>>> out_img = layer(input_img)