Keras - CNN Model Summary Diemension Interpretation

风流意气都作罢 提交于 2019-12-11 02:48:15

问题


I am using Keras library to build this deep learning model: INPUT(depth=1, height=15, width=27) -> CONV[depth=8](height=4, width=27) -> POOL(height=2, width=1) -> (Regression) output.

I expect the ouput shape from convolution2d_1 to be (None, 8, 12, 1) and thence, the ouput shape from pooling2d_1 to be (None, 8, 6, 1); while I am getting (None, 8, 15, 27) and (None, 8, 7, 27) respectively.

What am I doing or interpreting wrong here?

P.S.: Also, this setting gives a Baseline Error: 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

回答1:


Change border_mode='same' to border_mode='valid'. Border mode same adds zero padding to the input to make sure that the output of the convolutional layer has the same shape as its input. With border mode valid convolution is performed only where the input and the filter fully overlap.



来源:https://stackoverflow.com/questions/41869984/keras-cnn-model-summary-diemension-interpretation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!