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"
。預設為 "reflect"
。"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)