在转换层上传递正确大小的神经元

问题描述 投票:0回答:1

我已开始根据下图开发FCNet:enter image description here

输入层的图像大小为(500,500,3),第一个转换层为(698,698,3)。编写代码进行检查,我收到了(498,498,3)。我该如何进行呢?

遵循我的使用keras实现的代码部分。 这只是卷积的第一步。

from keras.models import *
from keras.layers import *
from keras.optimizers import *

def network(input_size=(IMAGE_SIZE,IMAGE_SIZE,3)):
    inputs = Input(input_size)
    conv1 = Conv2D(64, 3,  kernel_initializer='he_normal', activation='relu',padding='valid')(inputs)
    conv1 = Conv2D(64, 3,  kernel_initializer='he_normal', activation='relu',padding='valid')(conv1)
    pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)

    model = Model(input=inputs, output=pool1)


    model.summary()

这里是模型摘要的输出。

enter image description here

python tensorflow keras computer-vision keras-layer
1个回答
1
投票

在这种情况下,他们正在执行零填充以适合卷积层。

尝试一下:

IMAGE_SIZE=500

def network(input_size=(IMAGE_SIZE,IMAGE_SIZE,3)):
    inputs = Input(input_size)
    zero = ZeroPadding2D(padding=(100, 100), data_format=None)(inputs)
    conv1 = Conv2D(64, 3,  kernel_initializer='he_normal', activation='relu')(zero)
    conv1 = Conv2D(64, 3,  kernel_initializer='he_normal', 
    activation='relu',padding='same')(conv1)
    pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)
    model = Model(input=inputs, output=pool1)
    model.summary()

因此在下一层中,您可以再次使用padding ='same'

© www.soinside.com 2019 - 2024. All rights reserved.