输入层的图像大小为(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()
这里是模型摘要的输出。
在这种情况下,他们正在执行零填充以适合卷积层。
尝试一下:
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'