随机缩放层

[source]

RandomZoom class

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])和整数或浮点数据类型.默认情况下,该层将输出浮点数.

输入形状: 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:一个表示为值的分数的浮点数,或一个表示垂直缩放下限和上限的2元素元组.当表示为一个浮点数时,该值用于上下限.正值表示放大,负值表示缩小.例如,height_factor=(0.2, 0.3)将导致输出在[+20%, +30%]范围内随机放大.height_factor=(-0.3, -0.2)将导致输出在[+20%, +30%]范围内随机缩小. width_factor:一个表示为值的分数的浮点数,或一个表示水平缩放下限和上限的2元素元组.当表示为一个浮点数时,该值用于上下限.例如,width_factor=(0.2, 0.3)将导致输出在20%到30%之间随机放大.width_factor=(-0.3, -0.2)将导致输出在20%到30%之间随机缩小.None表示即,通过保持纵横比来垂直和水平缩放.默认为None. fill_mode:根据给定模式填充输入边界外的点.可用方法有"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". interpolation:插值模式.支持的值:"nearest""bilinear". seed:整数.用于创建随机种子. fill_value:一个表示当fill_mode="constant"时填充边界外区域的浮点数. data_format:字符串,"channels_last""channels_first".输入中维度的顺序."channels_last"对应于形状为(batch, height, width, channels)的输入,而"channels_first"对应于形状为(batch, channels, height, width)的输入.它默认为在~/.keras/keras.json中的image_data_format值.如果您从未设置它,那么它将是"channels_last". **kwargs:基础层关键字参数,例如namedtype.

示例:

>>> input_img = np.random.random((32, 224, 224, 3))
>>> layer = keras.layers.RandomZoom(.5, .2)
>>> out_img = layer(input_img)