Я тренировал свою модель в керасе на mnist. Я получил слои conv2d только потому, что хочу обучить сеть на маленьких изображениях (mnist: 28x28 px), а позже делаю вывод на больших изображениях 1920x1080.
Моя форма (для обучения):
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv1 (Conv2D) (None, 28, 28, 64) 640
_________________________________________________________________
batch_normalization_117 (Bat (None, 28, 28, 64) 256
_________________________________________________________________
leaky_re_lu_117 (LeakyReLU) (None, 28, 28, 64) 0
_________________________________________________________________
max_pooling2d_119 (MaxPoolin (None, 14, 14, 64) 0
_________________________________________________________________
conv2 (Conv2D) (None, 14, 14, 128) 73856
_________________________________________________________________
batch_normalization_118 (Bat (None, 14, 14, 128) 512
_________________________________________________________________
leaky_re_lu_118 (LeakyReLU) (None, 14, 14, 128) 0
_________________________________________________________________
max_pooling2d_120 (MaxPoolin (None, 7, 7, 128) 0
_________________________________________________________________
conv3 (Conv2D) (None, 7, 7, 256) 295168
_________________________________________________________________
batch_normalization_119 (Bat (None, 7, 7, 256) 1024
_________________________________________________________________
leaky_re_lu_119 (LeakyReLU) (None, 7, 7, 256) 0
_________________________________________________________________
max_pooling2d_121 (MaxPoolin (None, 4, 4, 256) 0
_________________________________________________________________
conv4 (Conv2D) (None, 4, 4, 128) 295040
_________________________________________________________________
batch_normalization_120 (Bat (None, 4, 4, 128) 512
_________________________________________________________________
leaky_re_lu_120 (LeakyReLU) (None, 4, 4, 128) 0
_________________________________________________________________
max_pooling2d_122 (MaxPoolin (None, 2, 2, 128) 0
_________________________________________________________________
conv5 (Conv2D) (None, 1, 1, 10) 5130
=================================================================
Total params: 672,138
Trainable params: 670,986
Non-trainable params: 1,152
Форма для вывода:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv1 (Conv2D) (None, 1920, 1080, 64) 640
_________________________________________________________________
batch_normalization_113 (Bat (None, 1920, 1080, 64) 256
_________________________________________________________________
leaky_re_lu_113 (LeakyReLU) (None, 1920, 1080, 64) 0
_________________________________________________________________
max_pooling2d_115 (MaxPoolin (None, 960, 540, 64) 0
_________________________________________________________________
conv2 (Conv2D) (None, 960, 540, 128) 73856
_________________________________________________________________
batch_normalization_114 (Bat (None, 960, 540, 128) 512
_________________________________________________________________
leaky_re_lu_114 (LeakyReLU) (None, 960, 540, 128) 0
_________________________________________________________________
max_pooling2d_116 (MaxPoolin (None, 480, 270, 128) 0
_________________________________________________________________
conv3 (Conv2D) (None, 480, 270, 256) 295168
_________________________________________________________________
batch_normalization_115 (Bat (None, 480, 270, 256) 1024
_________________________________________________________________
leaky_re_lu_115 (LeakyReLU) (None, 480, 270, 256) 0
_________________________________________________________________
max_pooling2d_117 (MaxPoolin (None, 240, 135, 256) 0
_________________________________________________________________
conv4 (Conv2D) (None, 240, 135, 128) 295040
_________________________________________________________________
batch_normalization_116 (Bat (None, 240, 135, 128) 512
_________________________________________________________________
leaky_re_lu_116 (LeakyReLU) (None, 240, 135, 128) 0
_________________________________________________________________
max_pooling2d_118 (MaxPoolin (None, 120, 68, 128) 0
_________________________________________________________________
conv5 (Conv2D) (None, 119, 67, 10) 5130
=================================================================
Total params: 672,138
Trainable params: 670,986
Non-trainable params: 1,152
Цель состоит в том, чтобы создать свернутое изображение с размерами моих выходных классов, которые представляют собой скользящее windows в моем большом изображении для вывода.
Но керасы не позволят мне тренироваться, потому что в последнем слое это уменьшит форму моего вывода предыдущих ios слоев (с (batch, x, y, channel) до (batch, channel)):
ValueError: Error when checking target: expected conv5 to have 4 dimensions, but got array with shape (48000, 10)
Форма должна быть (48000, 1, 1, 10) !!! Что я могу сделать, чтобы предотвратить это? Когда я представляю плоскую и плотную форму, я не могу использовать ее позже для вывода больших изображений?
Спасибо за ваше время и помощь.