Я пытаюсь создать сверточный автоэнкодер, и набор данных, который я использую, состоит из 25 x 25 изображений.
input_img = Input ( shape = (25 , 25, 1))
layer = input_img
layer = Conv2D (128 , kernel_size =(3 , 3) , activation = 'relu' , padding = 'same')( layer )
layer = MaxPooling2D ( pool_size =(2 , 2) , padding = 'same')( layer )
layer = Conv2D (128 , kernel_size =(3 , 3) ,activation = 'relu' , padding = 'same')( layer )
layer = MaxPooling2D ( pool_size =(2 , 2) , padding = 'same')( layer )
layer = Conv2D (128 , kernel_size =(3 , 3) ,activation = 'relu' , padding = 'same')( layer )
layer = Flatten ()( layer )
layer = Dense (32 , activation = 'relu')( layer )
layer = Dense (6)( layer )
encoded = layer
layer = Dense (32 , activation = 'relu')( encoded )
layer = Dense (6272 , activation = 'relu')( layer )
layer = Reshape ((7, 7, 128))( layer )
layer = Conv2D (128 , kernel_size =(3 , 3) ,activation = 'relu' , padding = 'same')( layer )
layer = UpSampling2D ((2 ,2))( layer )
layer = Conv2D (128 , kernel_size =(3 , 3) ,activation = 'relu' , padding = 'same')( layer )
layer = UpSampling2D ((2 ,2))( layer )
layer = Conv2D (1, kernel_size =(3 , 3) , padding = 'same')( layer )
autoencoder = Model ( input_img , layer )
Однако, когда я пытаюсь это сделать, я получаю следующие размеры:
input_35 (InputLayer) (None, 25, 25, 1) 0
_________________________________________________________________
conv2d_208 (Conv2D) (None, 25, 25, 128) 1280
_________________________________________________________________
max_pooling2d_72 (MaxPooling (None, 13, 13, 128) 0
_________________________________________________________________
conv2d_209 (Conv2D) (None, 13, 13, 128) 147584
_________________________________________________________________
max_pooling2d_73 (MaxPooling (None, 7, 7, 128) 0
_________________________________________________________________
conv2d_210 (Conv2D) (None, 7, 7, 128) 147584
_________________________________________________________________
flatten_32 (Flatten) (None, 6272) 0
_________________________________________________________________
dense_125 (Dense) (None, 32) 200736
_________________________________________________________________
dense_126 (Dense) (None, 6) 198
_________________________________________________________________
dense_127 (Dense) (None, 32) 224
_________________________________________________________________
dense_128 (Dense) (None, 6272) 206976
_________________________________________________________________
reshape_74 (Reshape) (None, 7, 7, 128) 0
_________________________________________________________________
conv2d_211 (Conv2D) (None, 7, 7, 128) 147584
_________________________________________________________________
up_sampling2d_72 (UpSampling (None, 14, 14, 128) 0
_________________________________________________________________
conv2d_212 (Conv2D) (None, 14, 14, 128) 147584
_________________________________________________________________
up_sampling2d_73 (UpSampling (None, 28, 28, 128) 0
_________________________________________________________________
conv2d_213 (Conv2D) (None, 28, 28, 1) 1153
_________________________________________________________________
reshape_75 (Reshape) (None, 1, 784) 0
_________________________________________________________________
activation_14 (Activation) (None, 1, 784) 0
_________________________________________________________________
reshape_76 (Reshape) (None, 28, 28, 1) 0
Я хочу, чтобы входные и выходные размеры были точно такими же, и я тоже не Не знаю, почему выбрал слой выборки (14,14,128), а слой свертки выбрал (13,13,128).