Класс RandomContrast
Класс RandomContrast применяется к изображениям
и случайным образом изменяет их контраст. Это один из
слоев предобработки Keras, который часто используется
для аугментации данных при обучении нейронных сетей.
Первым параметром передается коэффициент контраста
factor - число или кортеж из двух чисел, задающий
нижнюю и верхнюю границу диапазона изменения контраста.
Вторым параметром можно передать seed для
воспроизводимости случайных чисел. Класс наследуется
от tf.keras.layers.Layer и может быть включен
в состав модели.
Синтаксис
tf.keras.layers.RandomContrast(factor, [seed])
Пример
Давайте создадим слой RandomContrast с
коэффициентом контраста 0.5 и применим его
к тензору изображения:
import tensorflow as tf
tf.random.set_seed(0)
layer = tf.keras.layers.RandomContrast(0.5, seed=0)
t = tf.constant([[[[1.0], [2.0]], [[3.0], [4.0]]]])
res = layer(t, training=True)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[[0.75]
[1.5 ]]
[[2.25]
[3. ]]]], shape=(1, 2, 2, 1), dtype=float32)
Пример
Давайте создадим слой RandomContrast с
диапазоном контраста от 0.2 до 0.8
и применим его к тензору:
import tensorflow as tf
tf.random.set_seed(0)
layer = tf.keras.layers.RandomContrast((0.2, 0.8), seed=0)
t = tf.constant([[[[1.0], [2.0]], [[3.0], [4.0]]]])
res = layer(t, training=True)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[[0.8]
[1.6]]
[[2.4]
[3.2]]]], shape=(1, 2, 2, 1), dtype=float32)
Пример
Давайте применим слой RandomContrast в режиме
инференса, когда аугментация не выполняется:
import tensorflow as tf
tf.random.set_seed(0)
layer = tf.keras.layers.RandomContrast(0.5, seed=0)
t = tf.constant([[[[1.0], [2.0]], [[3.0], [4.0]]]])
res = layer(t, training=False)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[[1.]
[2.]]
[[3.]
[4.]]]], shape=(1, 2, 2, 1), dtype=float32)
Смотрите также
-
класс
RandomBrightness,
который случайным образом изменяет яркость изображения -
функцию
adjust_contrast,
которая детерминированно изменяет контраст изображения -
функцию
random_contrast,
которая случайным образом изменяет контраст тензора -
класс
RandomSaturation,
который случайным образом изменяет насыщенность изображения