随机亮度层

[源代码]

RandomBrightness

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

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

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

注意:此层可以在 tf.data 管道中安全使用(无论您使用哪个后端)。

参数

  • 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 = 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.
```python
>>> array([[[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)

```