Привет всем!
Поскольку я пытаюсь создать полностью сверточную нейронную сеть, которая преобразует изображения в градациях серого в изображения 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](https://i.stack.imgur.com/jdQ8s.png)
* Я использую TF 2.0 Alpha