Python keras中LSTM模型的维数

Python keras中LSTM模型的维数,python,keras,lstm,Python,Keras,Lstm,比如,这是培训和测试数据: X_matrix.shape = (5, 115318, 4) ; Y_matrix.shape = (5, 115318, 51) 我使用的LSTM模型是: model = Sequential() model.add(LSTM(128, dropout=0.2, recurrent_dropout=0.2)) model.add(Dense(51, activation='softmax')) model.compile(loss='binary_crossen

比如,这是培训和测试数据:

X_matrix.shape = (5, 115318, 4) ; Y_matrix.shape = (5, 115318, 51)
我使用的LSTM模型是:

model = Sequential()
model.add(LSTM(128, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(51, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
但是,当我运行模型时,结果是:

Dense layer expected 2 dimensions but gotten 3

据我所知,我不必定义输出层(密集层)的输入形状,所以为什么会发生这种情况?

问题是Y矩阵是三维的,而它应该是二维的。根据网络设置,Y矩阵应为形状(5,52)。尽管如此,您也可以将
return\u sequesnce=True
添加到
lstm
层,网络将按原样运行。另外,请注意,如果您有52个可能的类别,您的损失函数应该是
categorical\u crossentropy