РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
591 of 824 menu

Класс RandomWidth

Класс RandomWidth относится к слоям аугментации изображений в TensorFlow Keras. Он случайным образом изменяет ширину входного изображения, добавляя или убирая пиксели по горизонтали. Слой активен только во время обучения (при training=True), а на этапе инференса изображение возвращается без изменений. Первым параметром передаётся коэффициент изменения ширины factor, вторым - интерполяция interpolation, третьим - режим заполнения fill_mode и так далее.

Параметр factor может быть числом (тогда изменение происходит в диапазоне от 1 - factor до 1 + factor) или кортежем из двух значений, задающим нижнюю и верхнюю границу масштабирования ширины. Значение factor больше нуля увеличивает ширину, меньше нуля - уменьшает.

Синтаксис

tf.keras.layers.RandomWidth( factor, interpolation="bilinear", fill_mode="reflect", fill_value=0.0, seed=None, **kwargs )

Пример

Давайте создадим слой RandomWidth с коэффициентом 0.2 и применим его к тензору изображения:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.RandomWidth(factor=0.2, seed=0) t = tf.constant([[[[1], [2], [3]], [[4], [5], [6]]]]) res = layer(t, training=True) print(res.shape)

Результат выполнения кода:

(1, 2, 3, 1)

Пример

Давайте применим слой во время инференса (training=False) и убедимся, что изображение не изменяется:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.RandomWidth(factor=0.5, seed=0) t = tf.constant([[[[1], [2], [3]], [[4], [5], [6]]]]) res = layer(t, training=False) print(res.shape) print(res.numpy().tolist())

Результат выполнения кода:

(1, 2, 3, 1) [[[[1], [2], [3]], [[4], [5], [6]]]]

Пример

Давайте зададим диапазон изменения ширины кортежем (0.5, 1.5) и режим заполнения constant:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.RandomWidth( factor=(0.5, 1.5), fill_mode="constant", fill_value=0.0, seed=0 ) t = tf.constant([[[[1], [2], [3]], [[4], [5], [6]]]]) res = layer(t, training=True) print(res.shape)

Результат выполнения кода:

(1, 2, 3, 1)

Смотрите также

  • класс RandomHeight,
    который случайно изменяет высоту изображения
  • класс RandomCrop,
    который случайно вырезает фрагмент изображения
  • класс RandomZoom,
    который случайно масштабирует изображение
  • класс RandomTranslation,
    который случайно сдвигает изображение
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить