如果在具有相同滤镜大小的卷积层之后添加另一个卷积层会发生什么情况
例如,在大约20层的网络中,我必须在卷积层之间选择不同的滤波器大小。所以如果我做这样的事情会带来什么影响“”“
内部= MaxPooling2D(pool_size =(1,2),步幅= 2,填充='有效',名称='max3')(内部)
inner = Conv2D(64,(3,3),strides = 1,padding ='same',name ='conv6',kernel_initializer ='he_normal')(内部)
inner = Conv2D(64,(3,3),strides = 1,padding ='same',name ='conv7',kernel_initializer ='he_normal')(内部)
inner = Conv2D(64,(3,3),strides = 1,padding ='same',name ='conv8',kernel_initializer ='he_normal')(内部)
内部= BatchNormalization()(内部)
“”“
答案 0 :(得分:1)
在两种情况下都进行了培训,即使用相同的过滤器和使用不同的过滤器
(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'))
总参数:56,320
可训练的参数:56,320
不可训练的参数: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'))
总参数:19,392
可训练的参数:19,392
不可训练的参数:0
在这种情况下:损失:0.9760和准确度:0.6695