Я построил глубокую сверточную нейронную сеть, но где-то запутался.Мои выходные размеры просто немного смещены, и я не могу понять, почему.
encoding_dim = 512
input_image = Input(shape=train_images.shape[1:]) # (214, 214, 3)
# Build model
autoencoder = Sequential()
autoencoder.add(Conv2D(2*encoding_dim, (12, 12), padding='same', activation='relu', input_shape=input_shape,
kernel_initializer='random_uniform', bias_initializer='zeros'))
autoencoder.add(BatchNormalization())
autoencoder.add(MaxPooling2D((2, 2), padding='same'))
autoencoder.add(Conv2D(encoding_dim, (12, 12), padding='same', activation='relu',
kernel_initializer='random_uniform', bias_initializer='zeros'))
autoencoder.add(BatchNormalization())
autoencoder.add(MaxPooling2D((2, 2), padding='same'))
autoencoder.add(Conv2D(encoding_dim, (12, 12), padding='same', activation='relu',
kernel_initializer='random_uniform', bias_initializer='zeros'))
autoencoder.add(BatchNormalization())
autoencoder.add(UpSampling2D((2, 2)))
autoencoder.add(Conv2D(2*encoding_dim, (12, 12), padding='same', activation='relu',
kernel_initializer='random_uniform', bias_initializer='zeros'))
autoencoder.add(BatchNormalization())
autoencoder.add(UpSampling2D((2, 2)))
autoencoder.add(Conv2D(3, (12, 12), padding='same', activation='sigmoid',
kernel_initializer='random_uniform', bias_initializer='zeros'))
autoencoder.add(BatchNormalization())
# Compile
autoencoder.compile(optimizer='adam', loss='mean_squared_error')
Я получаю ошибку:
ValueError: Error when checking target: expected batch_normalization_5 to have shape (216, 216, 3) but got array with shape (214, 214, 3)