Python 3.x 卷积层中的滤波器尺寸

Python 3.x 卷积层中的滤波器尺寸,python-3.x,tensorflow,deep-learning,conv-neural-network,layer,Python 3.x,Tensorflow,Deep Learning,Conv Neural Network,Layer,如果在卷积层之后添加另一个具有相同过滤器大小的卷积层,会发生什么 例如,在大约20层的网络中,我必须在卷积层中选择不同的滤波器大小。那么,如果我这样做会产生什么影响呢 inner = MaxPooling2D(pool_size=(1,2),strides=2,padding='valid', name ='max3')(inner) inner = Conv2D(64, (3,3),strides=1,padding= 'same', name='conv6', kernel_initia

如果在卷积层之后添加另一个具有相同过滤器大小的卷积层,会发生什么

例如,在大约20层的网络中,我必须在卷积层中选择不同的滤波器大小。那么,如果我这样做会产生什么影响呢


inner = MaxPooling2D(pool_size=(1,2),strides=2,padding='valid', name ='max3')(inner)

inner = Conv2D(64, (3,3),strides=1,padding= 'same', name='conv6', kernel_initializer='he_normal')(inner)
 
inner = Conv2D(64, (3,3),strides=1,padding= 'same', name='conv7', kernel_initializer='he_normal')(inner)
 
inner = Conv2D(64, (3,3),strides=1,padding= 'same', name='conv8', kernel_initializer='he_normal')(inner)  
inner = BatchNormalization()(inner)


在使用相同过滤器和不同过滤器的两种情况下进行培训
(1) 观察结果是,当使用更多权重进行训练时(意味着随着数量的增加使用更多过滤器),测试精度更高
(2) 当使用相同的过滤器进行训练时,精度不如以前的情况

在CIFAR10数据集上运行以下代码

   model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
   model.add(layers.MaxPooling2D((2, 2)))
   model.add(layers.Conv2D(64, (3, 3), activation='relu'))
   model.add(layers.MaxPooling2D((2, 2)))
   model.add(layers.Conv2D(64, (3, 3), activation='relu'))
总参数:56320
可培训参数:56320
不可训练参数:0

在这种情况下,损失:0.9110-精度:0.6937

   model = models.Sequential()
   model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
   model.add(layers.MaxPooling2D((2, 2)))
   model.add(layers.Conv2D(32, (3, 3), activation='relu'))
   model.add(layers.MaxPooling2D((2, 2)))
   model.add(layers.Conv2D(32, (3, 3), activation='relu'))
总参数:19392
可培训参数:19392
不可训练参数:0

在这种情况下:损失:0.9760,准确度:0.6695