我正在使用Keras库来构建这个深度学习模型:INPUT(深度= 1,高度= 15,宽度= 27) - > CONV [depth = 8](高度= 4,宽度= 27) - > POOL(高度= 2,宽度= 1) - > (回归)输出。
我希望convolution2d_1的输出形状为(None,8,12,1),因此pooling2d_1的输出形状为(None,8,6,1);我分别得到(无,8,15,27)和(无,8,7,27)。
我在这里做什么或解释错误?
P.S。:此外,此设置给出了基线错误:99.23%!
print "SHAPE OF INPUT IS:", num_train_3D, depth, height, width
inp = Input(shape=(depth, height, width))
conv_1 = Convolution2D(8, 4, 27, border_mode='same', activation='relu')(inp)
pool_1 = MaxPooling2D(pool_size=(2, 1))(conv_1)
''' Now flatten to 1D, apply FC -> ReLU (with dropout) -> softmax '''
flat = Flatten()(pool_1)
out = Dense(1)(flat) #regression
model = Model(input=inp, output=out) # To define a model, just specify its input and output layers
print "Model Summary:"
print model.summary()
=====================================
SHAPE OF INPUT IS: 53745 1 15 27
Model Summary:
____________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
====================================================================================================
input_1 (InputLayer) (None, 1, 15, 27) 0
____________________________________________________________________________________________________
convolution2d_1 (Convolution2D) (None, 8, 15, 27) 872 input_1[0][0]
____________________________________________________________________________________________________
maxpooling2d_1 (MaxPooling2D) (None, 8, 7, 27) 0 convolution2d_1[0][0]
____________________________________________________________________________________________________
flatten_1 (Flatten) (None, 1512) 0 maxpooling2d_1[0][0]
____________________________________________________________________________________________________
dense_1 (Dense) (None, 1) 1513 flatten_1[0][0]
====================================================================================================
Total params: 2,385
Trainable params: 2,385
Non-trainable params: 0
答案 0 :(得分:2)
将border_mode='same'
更改为border_mode='valid'
。边界模式same
向输入添加零填充以确保卷积层的输出具有与其输入相同的形状。使用边框模式valid
仅在输入和滤镜完全重叠的位置执行卷积。