繁体   English   中英

在Resnet50 keras.applications中修改maxpooling层

[英]Modifying maxpooling layer in Resnet50 keras.applications

我正在研究一个细分项目,想知道是否有一种方法可以修改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)

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

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

但是,根据我的分割经验,如果打算以可变大小使用它,这将无济于事,因为在执行UpSamplings时,您将不知道图像的原始大小。 因此,UpSamplings最终通常会比原始样本更大。

现在,如果您使用固定大小,可以,您最终可以找到在模型内部正确填充的方法。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM