解决 'ValueError: Input 0 of layer "lstm_2" is incompatible with the layer: expected ndim=3, found ndim=2' 错误
在模型创建函数中,需要增加一个 Reshape 层将输入的数据从二维的序列数据转换为三维的数据,以满足 LSTM 层的输入要求。修改后的代码如下:
def create_model():
model = Sequential()
model.add(Conv1D(filters=32, kernel_size=3, activation='relu', input_shape=(1000, 1)))
model.add(MaxPooling1D(pool_size=2))
model.add(Conv1D(filters=64, kernel_size=3, activation='relu'))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Reshape((-1, 64))) # 新增的 Reshape 层
model.add(LSTM(64))
model.add(Dense(64, activation='relu'))
model.add(Dense(2, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
这样修改后,再次运行程序即可。
原文地址: https://www.cveoy.top/t/topic/lKNN 著作权归作者所有。请勿转载和采集!