Класс RandomHeight
Класс RandomHeight применяется к изображениям и выполняет случайное масштабирование по высоте. Это один из слоев аугментации данных, который помогает модели стать устойчивее к изменениям пропорций объектов. Первым параметром передается коэффициент масштабирования высоты (кортеж из двух чисел или одно число), вторым - режим интерполяции, третьим - режим заполнения. Слой активен только во время обучения, если не указано иное.
Синтаксис
tf.keras.layers.RandomHeight(
height_factor,
interpolation="bilinear",
fill_mode="reflect",
seed=None,
**kwargs
)
Пример
Давайте создадим слой RandomHeight с коэффициентом масштабирования 0.2 и применим его к тензору изображения:
import tensorflow as tf
tf.random.set_seed(0)
layer = tf.keras.layers.RandomHeight(0.2)
t = tf.constant([[[[1.0], [2.0]], [[3.0], [4.0]]]])
res = layer(t, training=True)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[[1.]
[2.]]
[[3.]
[4.]]]], shape=(1, 2, 2, 1), dtype=float32)
Пример
Давайте создадим слой с диапазоном масштабирования от 0.5 до 1.5 и режимом заполнения constant:
import tensorflow as tf
tf.random.set_seed(0)
layer = tf.keras.layers.RandomHeight(
(0.5, 1.5),
fill_mode="constant"
)
t = tf.constant([[[[1.0], [2.0]], [[3.0], [4.0]]]])
res = layer(t, training=True)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[[1.]
[2.]]
[[0.]
[0.]]
[[3.]
[4.]]]], shape=(1, 3, 2, 1), dtype=float32)
Пример
Давайте применим слой к пакету из двух изображений и выведем форму результата:
Результат выполнения кода:
(2, 2, 2, 1)
Смотрите также
-
класс
RandomWidth,
который случайно изменяет ширину изображения -
класс
RandomZoom,
который случайно масштабирует изображение -
класс
RandomCrop,
который случайно обрезает изображение -
класс
RandomTranslation,
который случайно сдвигает изображение