随机亮度层

[源代码]

RandomBrightness

tf_keras.layers.RandomBrightness(factor, value_range=(0, 255), seed=None, **kwargs)

一个在训练期间随机调整亮度的预处理层。

此层将随机增加/减少输入 RGB 图像的亮度。在推理时,输出将与输入相同。使用 training=True 调用该层以调整输入的亮度。

请注意,批次中的每个图像都会应用不同的亮度调整因子。

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

参数

  • factor: 浮点数或包含两个浮点数的列表/元组,范围在 -1.0 到 1.0 之间。该因子用于确定亮度调整的下限和上限。将在限制范围内随机选择一个浮点值。当选择 -1.0 时,输出图像将为黑色,当选择 1.0 时,图像将为全白色。当只提供一个浮点数时,例如 0.2,则 -0.2 将用作下限,0.2 将用作上限。
  • value_range: 可选的包含两个浮点数的列表/元组,用于表示输入数据值的上下限。若要保持不变,请使用 [0.0, 1.0],例如,如果图像输入在此层之前已进行过缩放。默认为 [0.0, 255.0]。亮度调整将缩放至此范围,并且输出值将被裁剪至此范围。
  • seed: 可选整数,用于固定 RNG 行为。

输入: 3D (HWC) 或 4D (NHWC) 张量,数据类型为浮点数或整数。输入像素值可以是任何范围(例如 [0., 1.)[0, 255])。

输出: 3D (HWC) 或 4D (NHWC) 张量,亮度根据 factor 进行调整。默认情况下,该层将输出浮点数。输出值将被裁剪至范围 [0, 255](RGB 颜色的有效范围),并在需要时根据 value_range 重新缩放。

示例用法

random_bright = tf.keras.layers.RandomBrightness(factor=0.2)

# An image with shape [2, 2, 3]
image = [[[1, 2, 3], [4 ,5 ,6]], [[7, 8, 9], [10, 11, 12]]]

# Assume we randomly select the factor to be 0.1, then it will apply
# 0.1 * 255 to all the channel
output = random_bright(image, training=True)

# output will be int64 with 25.5 added to each channel and round down.
tf.Tensor([[[26.5, 27.5, 28.5]
            [29.5, 30.5, 31.5]]
           [[32.5, 33.5, 34.5]
            [35.5, 36.5, 37.5]]],
          shape=(2, 2, 3), dtype=int64)