Keras CNN不兼容的输入

时间:2017-03-11 22:14:34

标签: python-3.x tensorflow keras

我是keras的新手,并且还没有想出尺寸规则。我使用TF后端并使用下面的代码继续获取此ValueError。想法是使用2个1D卷积层,每个卷积层需要处理1个长度为6的时间序列阵列。然后,这些卷的输出需要合并并在2D卷积层中进行卷积。谢谢你的帮助。

NN1 = Sequential()
NN1.add(Convolution1D(4, 2,
                         input_dim=6,
                         activation='relu'))

NN2 = Sequential()
NN2.add(Convolution1D(4, 2,
                         input_dim=6,
                         activation='relu'))

TNN    = Sequential()
TNN.add(Merge([NN1, NN2], mode='concat', concat_axis=1))
TNN.add(Convolution2D(2, 2, 2, input_shape=(2, 4, 1, 2), activation='relu'))

ValueError: Input 0 is incompatible with layer convolution2d_1: expected ndim=4, found ndim=3

1 个答案:

答案 0 :(得分:1)

谈话结束后,我建议你做以下事情:

TNN.add(Merge([NN1, NN2], mode='concat', concat_axis=-1))
TNN.add(Convolution1D(2, 2, activation='relu'))
TNN.add(GlobalMaxPooling1D())
TNN.add(Dense(...)) # Put your parameters here.