【问题标题】:Modifying maxpooling layer in Resnet50 keras.applications在 Resnet50 keras.applications 中修改 maxpooling 层
【发布时间】:2018-11-15 06:48:13
【问题描述】:

我正在做一个分段项目,想知道是否有办法修改 keras.application 中的 resent50 maxpooling 层。我在 Kaggle 内核中使用 keras.application 并且想知道是否可以通过代码更新层。

x = ZeroPadding2D(padding=(3, 3), name='conv1_pad')(img_input)
x = Conv2D(64, (7, 7), strides=(2, 2), name='conv1')(img_input)
x = BatchNormalization(axis=bn_axis, name='bn_conv1')(x)
x = Activation('relu')(x)
x = MaxPooling2D((3, 3), strides=(2, 2))(x)

到:

x = Conv2D(64, (7, 7), strides=(2, 2), padding='same', name='conv1')(img_input)
x = BatchNormalization(axis=bn_axis, name='bn_conv1')(x)
x = Activation('relu')(x)
x = MaxPooling2D((3, 3), strides=(2, 2), padding = 'same')(x)

【问题讨论】:

    标签: python keras keras-layer max-pooling


    【解决方案1】:

    您始终可以复制源代码并创建替代版本。

    复制 resnet 的源代码,将类重命名为 CustomResnet 并更改您想要的内容。

    不过,根据我的分割经验,如果您打算将其用于可变尺寸,这对您没有多大帮助,因为在您执行 UpSamplings 时,您不会知道图像的原始尺寸。因此,UpSamplings 通常最终会比原来的更大。

    现在,如果您使用的是固定尺寸,那么您最终可以找到一种在模型内正确填充的方法。

    但我真的建议您计算 MaxPooling 层的数量,并确保您的输入图像大小是 2^poolingLayers 的倍数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 2019-01-30
      • 2021-08-29
      • 1970-01-01
      • 2020-11-10
      • 1970-01-01
      • 2019-03-19
      相关资源
      最近更新 更多