Tensorflow / Keras собирает изображения в стек на каналах

#python #numpy #tensorflow #keras

#питон #numpy #tensorflow #keras

Вопрос:

Представьте себе следующую настройку:

  • форма данных изображения: (302, 482, 3)
  • изображений на выборку: 2
  • размер пакета: 100

Мой загрузчик данных выдает следующую форму: (100, 2, 302, 482, 3) — цель состоит в том, чтобы сложить два входных изображения на оси канала, чтобы (100, 302, 482, 6).

Без указания размера партии (таким образом, x имеет форму (2, 302, 482, 3) ) это довольно просто:

 # x.shape = (2, 302, 482, 3)
stacked = tf.concat(x, axis=-1)
# stacked.shape = (302, 482, 6)
  

Но я не могу понять, как выполнять те же операции, когда добавляется пакетное измерение.

Ответ №1:

На мой взгляд, лучший способ — объединить до 2 изображений перед вводом в сеть (с помощью numpy), предоставляя сети размеры (302, 482, 6, ), если вы не хотите обрабатывать их выше в сети. Это зависит от вашей цели. Размер пакета не имеет значения при написании ваших слоев. tf.concat будет выполняться точно так же, независимо от размера пакета.