Проблема со слоем Conv2DTranspose в FCN - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь реализовать FCN с помощью keras, но когда я попытался увеличить выборку карты объектов, у меня возникла проблема. Размер карты объектов после аппсайла не совпадает с размером ввода. Я обнаружил, что эта проблема возникла из-за того, что размер карты объектов нечетный, а после объединения слоя его размер делится на 2.

Например: при входном размере (95,95,3) с 3 Количество каналов, после применения которых максимальный размер пула будет (47,47,3). Поэтому, когда я пытаюсь увеличить выборку карты объектов x2, форма будет (94,94,3) ....

1 Ответ

0 голосов
/ 06 марта 2020

Вам нужно использовать отступы, чтобы решить вашу проблему.

Если в точке во время понижающей дискретизации вы достигаете нечетного числа, то с помощью простой повышающей дискретизации / транспонированной свертки вы не будете поддерживать высоту и ширина входного изображения.

Решение - отступ; взгляните на эту документацию: https://www.tensorflow.org/api_docs/python/tf/keras/layers/ZeroPadding2D

Практически, когда вы уменьшаете с коэффициентом 2 и получаете нечетное число (54/2 = 27), вы получаете размер (27,27), и с помощью ZeroPadding2D вы можете изменить размер изображения, например, на (28,28).

Применение заполнения на каждом шаге, где вы сталкиваетесь с проблемой «нечетного числа», поможет вам решить вашу проблему. вопрос.

...