RandomZoom 层

[来源]

RandomZoom

tf_keras.layers.RandomZoom(
    height_factor,
    width_factor=None,
    fill_mode="reflect",
    interpolation="bilinear",
    seed=None,
    fill_value=0.0,
    **kwargs
)

一个在训练期间随机缩放图像的预处理层。

此层会独立地随机放大或缩小图像的每个轴,并根据 fill_mode 填充空白空间。

输入像素值可以是任何范围(例如 [0., 1.)[0, 255]),可以是整数或浮点 dtype。默认情况下,该层将输出浮点数。

有关预处理层的概述和完整列表,请参阅预处理指南

参数

  • 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", "reflect", "wrap", "nearest"} 之一)填充输入边界外的点。
    • 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) 通过用相同的常数值 k = 0 填充边缘外的所有值来扩展输入。
    • 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) 通过最近的像素来扩展输入。
  • interpolation: 插值模式。支持的值:"nearest""bilinear"
  • seed: 整数。用于创建随机种子。
  • fill_value: 当 fill_mode="constant" 时,表示用于填充边界外的值的浮点数。

示例

>>> input_img = np.random.random((32, 224, 224, 3))
>>> layer = tf.keras.layers.RandomZoom(.5, .2)
>>> out_img = layer(input_img)
>>> out_img.shape
TensorShape([32, 224, 224, 3])

输入形状

3D(非批量)或 4D(批量)张量,形状为:(..., height, width, channels),采用 "channels_last" 格式。

输出形状

3D(非批量)或 4D(批量)张量,形状为:(..., height, width, channels),采用 "channels_last" 格式。