Если ваши входные данные согласованы между примерами (т. Е. Если inputs = image1, image2
, то все ваши image1
одинакового размера, все ваши image2
одинакового размера, но image1.shape
не обязательно одинаковыкак image2
вы можете просто сгладить конечные выходные данные и объединить результаты перед передачей в плотный слой.
conv1_out = conv_network1(image1)
conv2_out = conv_network2(image2) # could be same network
flat1 = tf.layers.flatten(conv1_out)
flat2 = tf.layers.flatten(conv2_out)
dense_in = tf.concat((flat1, flat2), axis=1)
dense_out = tf.layers.dense(dense_in, units)
В качестве альтернативы, если ваши изображения имеют разные размеры в пакетах, если у вас большое количество пространственныхВозможности пространственного объединения - еще один популярный вариант.
flat1 = tf.reduce_mean(conv1_out, axis=(1, 2))
flat2 = tf.reduce_mean(conv2_out, axis=(1, 2))
Вы также можете использовать максимальное объединение, хотя его поведение несколько отличается.