как объединить свернутые слои различной формы в фиксированную форму, чтобы передать для полностью связанного слоя - PullRequest
0 голосов
/ 12 июня 2018

У меня есть входные изображения разных размеров, и я передаю их через слои Conv в CNN, после чего я должен подключить выходы Conv к полностью подключенному слою для классификации.

Поскольку процесс должен бытьВекторизованные выходы должны быть одинаковой формы, чтобы можно было использовать серию изображений для прямого прохода.И, следовательно, проблема наличия одинаковой формы для всех изображений на входе слоя Fully Connected.

Но поскольку мои входные изображения имеют разную форму, мой последний слой Conv дает выходные данные различной формы, как мне объединить / изменить формувыходы различной формы из Last Conv Layer в фиксированную форму, чтобы их можно было подключить к непосредственному слою FCN?

Кроме того, я рассмотрел возможность преобразования изображений в фиксированный размер перед обработкой, но у меня есть проблемы с производительностью [точность] в качестве входных данныхизображения различаются по размеру [Итак, пробуя это].

1 Ответ

0 голосов
/ 12 июня 2018

Если ваши входные данные согласованы между примерами (т. Е. Если 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))

Вы также можете использовать максимальное объединение, хотя его поведение несколько отличается.

...