【问题标题】:In 'ResNet50 model for Keras', why use 1x1 convolution with stride = 2?在“Keras 的 ResNet50 模型”中,为什么要使用步幅 = 2 的 1x1 卷积?
【发布时间】:2020-01-03 00:30:57
【问题描述】:

ResNet50 在这里:https://github.com/fchollet/deep-learning-models/blob/master/resnet50.py

在一个'conv_block'中,第一层是这样的:

x = Conv2D(filters1 = 64,           # number of filters
           kernel_size=(1, 1),      # height/width of filters
           strides=(2, 2)           # stride
          )(input_tensor)

我的问题是:

这个图层不会丢失一些像素吗?
这个 1x1 卷积只看 1 个像素,然后移动 2 个像素(stride=2)。

【问题讨论】:

    标签: keras


    【解决方案1】:

    Resn​​et的原论文中提到过:

    卷积层大多有 3×3 的过滤器和 遵循两个简单的设计规则:(i)对于相同的输出 特征图大小,层具有相同数量的过滤器; (ii) 如果特征图大小减半,过滤器的数量加倍,以保持每层的时间复杂度。我们直接执行下采样 步长为 2 的卷积层

    所以你可以认为它是 Pooling 层的替代品,与计算整个激活图然后将其池化相比,它还降低了整个模型的计算复杂度。

    【讨论】:

      猜你喜欢
      • 2018-04-28
      • 2020-11-30
      • 2019-12-15
      • 2017-01-14
      • 2020-02-09
      • 2017-05-07
      • 2017-01-09
      • 1970-01-01
      • 2022-09-29
      相关资源
      最近更新 更多