CNN с динамической формой ввода - PullRequest
1 голос
/ 19 апреля 2019

Привет всем!

Поскольку я пытаюсь создать полностью сверточную нейронную сеть, которая преобразует изображения в градациях серого в изображения RGB, мне стало интересно, смогу ли я обучить и протестировать модель на изображениях разного размера (с разным разрешением и соотношением пикселей). Обычно вы просто уменьшаете или понижаете, что я не хочу делать. Я слышал, что это возможно, если я использую полностью сверточную нейронную сеть, но я до сих пор не знаю, как будет выглядеть код. Не могли бы вы помочь мне с кодом?

Почему это проблема?

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

Код для фиксированной формы ввода:

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
...

с изображениями размером 28 * 28px

Как я думал, что это может работать model = models.Sequential() model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(None, None, 1))) model.add(layers.MaxPooling2D((2, 2))) ... с изображениями разных размеров

  • image1 = 256 * 300
  • image2 = 1024 * 800
  • image3 = 500 * 400

Здесь - это пример автоматического кодера, который преобразует изображения в градациях серого в изображения RGB, но у этого есть фиксированная форма ввода.

enter image description here

* Я использую TF 2.0 Alpha

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...