Keras 奇数图像的卷积层
我正在尝试构造一个卷积自动编码器,我使用的数据集由25 x 25个图像组成Keras 奇数图像的卷积层,keras,Keras,我正在尝试构造一个卷积自动编码器,我使用的数据集由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 = 'sa
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,14128),而卷积层选择(13,13128) 您可以使用
零填充2D
或裁剪2D
层
input\u img=input(形状=(25,25,1))
图层=输入\u img
#图层=零填充(((3,0),(3,0))(图层)
layer=Conv2D(128,内核大小=(3,3),激活='relu',填充='same')(layer)
layer=MaxPoolig2D(池大小=(2,2),填充='相同')(层)
layer=Conv2D(128,内核大小=(3,3),激活='relu',填充='same')(layer)
layer=MaxPoolig2D(池大小=(2,2),填充='相同')(层)
layer=Conv2D(128,内核大小=(3,3),激活='relu',填充='same')(layer)
层=展平()(层)
层=密集(32,激活='relu')(层)
层=致密(6)(层)
编码=层
层=密集(32,激活='relu')(编码)
层=密集(6272,激活='relu')(层)
层=重塑((7,7,128))(层)
layer=Conv2D(128,内核大小=(3,3),激活='relu',填充='same')(layer)
图层=上采样2D((2,2))(图层)
layer=Conv2D(128,内核大小=(3,3),激活='relu',填充='same')(layer)
图层=上采样2D((2,2))(图层)
layer=Conv2D(1,内核大小=(3,3),padding='same')(layer)
图层=裁剪2D((3,0),(3,0))(图层)
自动编码器=模型(输入图像,图层)
结果:
Model:“Model_8”
_________________________________________________________________
层(类型)输出形状参数
=================================================================
输入_12(输入层)[(无,25,25,1)]0
_________________________________________________________________
零填充2D_8(零填充(无,28,28,1)0
_________________________________________________________________
conv2d_54(conv2d)(无、28、28、128)1280
_________________________________________________________________
最大池2D_18(最大池(无、14、14、128)0
_________________________________________________________________
conv2d_55(conv2d)(无、14、14、128)147584
_________________________________________________________________
最大池2D池19(最大池(无、7、7、128)0
_________________________________________________________________
conv2d_56(conv2d)(无、7、7、128)147584
_________________________________________________________________
展平9(展平)(无,6272)0
_________________________________________________________________
密集型_37(密集型)(无,32)200736
_________________________________________________________________
致密(致密)(无,6)198
_________________________________________________________________
致密(致密)(无,32)224
_________________________________________________________________
致密(致密)(无,6272)206976
_________________________________________________________________
重塑_9(重塑)(无、7、7、128)0
_________________________________________________________________
conv2d_57(conv2d)(无、7、7、128)147584
_________________________________________________________________
上采样2D上采样18(上采样(无、14、14、128)0
_________________________________________________________________
conv2d_58(conv2d)(无、14、14、128)147584
_________________________________________________________________
上采样2D上采样19(上采样(无、28、28、128)0
_________________________________________________________________
conv2d_59(conv2d)(无、28、28、1)1153
=================================================================
总参数:1000903
可培训参数:1000903
不可训练参数:0
_________________________________________________________________
谢谢!我只是想知道填充和裁剪是否会影响模型的整体性能。