Класс RandomCrop
Класс RandomCrop применяется к изображениям для их случайной обрезки
до заданной высоты и ширины. Первым параметром передается высота
обрезаемого участка, вторым - ширина. Также можно указать
начальное положение обрезки через параметры seed и
name. Класс наследуется от tf.keras.layers.Layer
и предназначен для использования в слоях предобработки данных.
Синтаксис
tf.keras.layers.RandomCrop(height, width, seed=None, name=None)
Пример
Давайте создадим слой RandomCrop с высотой 2
и шириной 2 и применим его к изображению:
import tensorflow as tf
tf.random.set_seed(0)
crop_layer = tf.keras.layers.RandomCrop(height=2, width=2)
t = tf.constant([[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9]]])
res = crop_layer(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[4]
[5]]
[[7]
[8]]], shape=(2, 2, 1), dtype=int32)
Пример
Давайте создадим слой RandomCrop и применим его
к пакету изображений:
<+python+>
import tensorflow as tf
tf.random.set_seed(0)
crop_layer = tf.keras.layers.RandomCrop(height=1, width=2)
t = tf.constant([
[[[1], [2], [3]], [[4], [5], [6]]],
[[[7], [8], [9]], [[10], [11], [12]]]
])
res = crop_layer(t)
print(res)
<-python+>
Результат выполнения кода:
tf.Tensor(
[[[[2]
[3]]]
[[[8]
[9]]]], shape=(2, 1, 2, 1), dtype=int32)
Смотрите также
-
класс
CenterCrop,
который выполняет центральную обрезку изображений -
функцию
random_crop,
которая выполняет случайную обрезку тензоров -
функцию
crop_to_bounding_box,
которая обрезает изображение до ограничивающей рамки -
класс
RandomFlip,
который выполняет случайное отражение изображений