Слой размера в TensorFlow
Чтобы все картинки в модели имели
одинаковую высоту и ширину, их
подгоняют заранее. Слой смены
размера в Keras задают классом
Resizing: при создании
указывают нужную высоту и ширину
в пикселях.
Возьмём одну карту 2×2
с одним каналом и растянем её
до 3×3. Выведем форму
ответа:
import tensorflow as tf
images = tf.constant([[[[1.0], [2.0]],
[[3.0], [4.0]]]])
layer = tf.keras.layers.Resizing(3, 3)
out = layer(images)
print(out.shape)
# выведет (1, 3, 3, 1)
Число каналов не меняется, меняются только высота и ширина. Увеличим цветную карту до большего размера:
import tensorflow as tf
images = tf.constant([[[[1.0, 2.0], [3.0, 4.0]]]])
layer = tf.keras.layers.Resizing(4, 4)
out = layer(images)
print(images.shape)
print(out.shape)
Слой работает с целой партией: каждая картинка в пакете получает один и тот же новый размер:
import tensorflow as tf
images = tf.zeros((2, 5, 5, 3))
layer = tf.keras.layers.Resizing(8, 8)
out = layer(images)
print(out.shape)
Создайте партию из одной серой
карты 2×2 с числами
1, 2, 3, 4.
Подгоните её к размеру 6×6
и выведите форму результата.
Задайте партию из трёх цветных
картинок 10×10, заполненных
нулями. Уменьшите их до
4×4 и выведите форму
ответа.
Соберите карту 1×5 с двумя
каналами в партии из одного
элемента. Измените ширину до
3, оставив высоту 1,
и выведите форму выхода.