Use “Flatten” or “Reshape” to get 1D output of unknown input shape in keras

£可爱£侵袭症+ 提交于 2019-11-30 15:32:47

You can try K.batch_flatten() wrapped in a Lambda layer. The output shape of K.batch_flatten() is dynamically determined at runtime.

model.add(Lambda(lambda x: K.batch_flatten(x)))
model.summary()

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_5 (Conv2D)            (None, 4, None, 32)       4128      
_________________________________________________________________
batch_normalization_3 (Batch (None, 4, None, 32)       128       
_________________________________________________________________
leaky_re_lu_3 (LeakyReLU)    (None, 4, None, 32)       0         
_________________________________________________________________
conv2d_6 (Conv2D)            (None, 1, None, 1)        65        
_________________________________________________________________
activation_3 (Activation)    (None, 1, None, 1)        0         
_________________________________________________________________
lambda_5 (Lambda)            (None, None)              0         
=================================================================
Total params: 4,321
Trainable params: 4,257
Non-trainable params: 64
_________________________________________________________________


X = np.random.rand(32, 4, 256, 1)
print(model.predict(X).shape)
(32, 256)

X = np.random.rand(32, 4, 64, 1)
print(model.predict(X).shape)
(32, 64)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!