Батч картинок в TensorFlow
У пакета картинок в Keras принят порядок NHWC: сначала число изображений в партии, затем высота и ширина в пикселях, в конце - число каналов. Форму читают как четверку размеров осей.
Соберём вручную одну картинку
2×2 пикселя с двумя каналами
и обернём её в партию из одного
элемента. Выведем форму и сам
тензор:
import tensorflow as tf
batch = tf.constant([[
[[1.0, 0.0], [0.0, 1.0]],
[[2.0, 1.0], [1.0, 2.0]],
]])
print(batch.shape)
print(batch)
# выведет (1, 2, 2, 2)
Первое число формы - размер партии. Дальше идут высота, ширина и каналы. Если добавить вторую картинку того же размера, меняется только первая ось:
import tensorflow as tf
batch = tf.constant([
[[[1.0, 0.0], [0.0, 1.0]],
[[2.0, 1.0], [1.0, 2.0]]],
[[[0.5, 0.5], [1.0, 0.0]],
[[0.0, 1.0], [1.5, 1.5]]],
])
print(batch.shape)
# выведет (2, 2, 2, 2)
Каналы в конце формы - это, например, три компоненты цвета или несколько карт признаков после свёртки. Сравним формы партии из одной серой картинки и из цветной:
import tensorflow as tf
gray = tf.zeros((1, 4, 4, 1))
color = tf.zeros((1, 4, 4, 3))
print(gray.shape)
print(color.shape)
Создайте партию из одной карты
3×3 с одним каналом,
заполненной единицами, и выведите
форму.
Соберите партию из двух картинок
2×2 с двумя каналами:
первая - нули, вторая - единицы.
Выведите форму результата.
Задайте пустую партию на
5 цветных картинок размером
8×8 и выведите длину формы
через атрибут shape.