簡體   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