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

Класс RandomRotation

Класс RandomRotation относится к слоям предобработки изображений TensorFlow Keras. Он случайным образом поворачивает изображение на угол в заданном диапазоне, заполняя освободившиеся области выбранным значением. Первым параметром передается число или диапазон углов поворота в градусах, вторым - режим заполнения fill_mode, третьим - значение заполнения fill_value, четвертым - зерно генератора случайных чисел seed. Слой активен только при обучении и не изменяет изображение во время инференса.

Синтаксис

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

Пример

Давайте создадим слой случайного поворота на угол до 90 градусов и применим его к изображению из единиц:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.RandomRotation(0.25) t = tf.ones((1, 4, 4, 1)) res = layer(t, training=True) print(res.shape)

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

(1, 4, 4, 1)

Пример

Давайте зададим диапазон углов поворота от -45 до 45 градусов и посмотрим на изменение значений пикселей:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.RandomRotation( factor=(-0.125, 0.125), fill_mode="constant", fill_value=0.0 ) t = tf.constant([[[[1.0], [0.0], [0.0], [0.0]], [[0.0], [1.0], [0.0], [0.0]], [[0.0], [0.0], [1.0], [0.0]], [[0.0], [0.0], [0.0], [1.0]]]]) res = layer(t, training=True) print(res.shape)

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

(1, 4, 4, 1)

Пример

Давайте применим слой к изображению с тремя каналами и выведем значения первого канала после поворота:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.RandomRotation(0.5) t = tf.constant([[[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]], [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]], [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]]]) res = layer(t, training=True) print(res.shape)

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

(1, 3, 3, 3)

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

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