Это резюме моей модели.

Моя модель в основном похожа на сеть свертки.
Я хочу, чтобы моя модель работала независимо от ширины ввода. Таким образом, размер ширины выглядит как None
.
и я подключил декодеры к моей модели, используя Conv2DTranspose
.
Однако есть проблема.
Я ожидал, что результат от Conv2DTranspose
будет того же размера, что и входные данные, но это не то же самое.
Я установил stride
на 2
, чтобы уменьшить количество параметров, а режим padding
равен same
, но я обнаружил проблему, когда размер нечетный.
Следующие функции использовались для операций свертки в ConvCapsuleLayer (custom layer)
.
conv = K.conv2d(input_tensor_reshaped, self.W, (self.strides, self.strides),
padding=self.padding, data_format='channels_last')
и я использовал Conv2DTranspose
для декодера следующим образом.
recon_1 = layers.Conv2DTranspose(4, (5,5), strides=(2, 2), padding='same', kernel_initializer='he_normal', name='decoder_1', activation='relu')(mask_layer)
recon_2 = layers.Conv2DTranspose(8, (5,5), strides=(2, 2), padding='same', kernel_initializer='he_normal', name='decoder_2', activation='relu')(recon_1)
recon_3 = layers.Conv2DTranspose(1, (1,1), strides=(1, 1), padding='same', kernel_initializer='he_normal', name='decoder_3', activation='linear')(recon_2)
Затем я получаю следующее сообщение об ошибке.
InvalidArgumentError (см. Выше для отслеживания): несовместимые фигуры: [1 200 824,1] против [1 200 823,1]
Как мне разрешить эту разницу, если размер нечетный?