【问题标题】:filter size in convolution layers卷积层中的过滤器大小
【发布时间】:2019-09-25 04:25:49
【问题描述】:

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

例如,在大约 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)

【问题讨论】:

    标签: python-3.x tensorflow deep-learning conv-neural-network layer


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 2019-11-28
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多