我正在尝试用:
构建一个简单的卷积NN我认为形状的顺序是(batch_size,steps,input_dim),这意味着(340,16,260)我相信。
当前代码:
model = Sequential()
model.add(Conv1D(64, kernel_size=3, activation='relu', input_shape=(340, 16, 260)))
# model.add(Conv2D(64, 2, activation='relu'))
model.add(MaxPooling1D())
# model.add(Conv2D(128, 2, activation='relu'))
model.add(Conv1D(64, kernel_size=3, activation='relu'))
model.add(GlobalAveragePooling1D())
model.add(Dense(1, activation='linear'))
model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
model.summary()
model.fit(xTrain, yTrain, batch_size=16, epochs=1000)
我收到错误:
ValueError:输入0与图层conv1d_1不兼容:预期ndim = 3,找到ndim = 4
我很迷茫,相信我的形状已经消失了。有人能帮助我吗? 谢谢!
答案 0 :(得分:0)
如this answer中所述,Keras中的图层接受两个参数:input_shape
和batch_input_shape
。区别在于input_shape
不包含批量大小,而batch_input_shape
是完整输入形状,包括批量大小。
基于此,我认为规范input_shape=(340, 16, 260)
告诉keras期望一个4维输入,这不是你想要的。正确的论点是batch_input_shape=(340, 16, 260)
。