Python 无法在Keras中构建LSTM层

Python 无法在Keras中构建LSTM层,python,keras,lstm,Python,Keras,Lstm,我正在尝试开发keraslstm代码。我有代表音频特征的输入数据,就是这样 培训项目[210969] 特征向量[40] 批量大小[256] 数据示例 [1.66514225-0.44892017 0.24430933…,-0.96550658-1.3456034 -1.76591301][-1.79528513-1.68822871 0.05168475…,-0.23602946-0.26985581-0.0951985][-0.09728797-1.27619953-1.48452426…,-

我正在尝试开发keraslstm代码。我有代表音频特征的输入数据,就是这样

培训项目[210969]

特征向量[40]

批量大小[256]

数据示例

[1.66514225-0.44892017 0.24430933…,-0.96550658-1.3456034 -1.76591301][-1.79528513-1.68822871 0.05168475…,-0.23602946-0.26985581-0.0951985][-0.09728797-1.27619953-1.48452426…,-1.11481965-0.22158974-1.10055417]

在我的Python代码中,我使用Keras库。我尝试构建LSTM层。我正在使用input_形状,但无法很好地使用。我尝试将输入数据从二维重塑为三维。您可以在fit函数中看到

.........
elif classname == 'LSTM':
    layer_setup['config']['input_shape'] = (210969,40)
............
.......... 
model.fit(
            x=X_training.reshape(256,X_training.shape[0],X_training.shape[1]),
            y=Y_training.reshape(256,Y_training.shape[0],Y_training.shape[1]),
            batch_size=256,
            epochs=500,
            validation=validationdata,
            verbose=0,
            shuffle=true,
            callbacks=callbacks,
            class_weight=class_weight
        )
我在运行代码时出错了

无法将大小为8438760的数组重塑为形状(256210969,40)


我该怎么办?谢谢

我认为您应该在模型创建之外重塑数据,因为这样您可以尝试从大小为
8438760
的向量创建
256*210969*40
的向量。我认为你实现你想要的东西的方式是这样的:

X = X_training.reshape((layer_setup['config']['input_shape'])) # now X.shape = 210969 * 40
y = Y_training.reshape((Y_training.shape[0],Y_training.shape[1]))
...
model.fit(
            x = X,
            y = y,
            batch_size=256,
            epochs=500,
            validation=validationdata,
            verbose=0,
            shuffle=true,
            callbacks=callbacks,
            class_weight=class_weight
        )

您是否重塑了validationdata?是的。我认为数据无法重塑。我认为您不必根据批次重塑数据,您是否尝试过在不重塑的情况下传递数据?是的。在那个时候,我在检查模型输入时得到了错误
错误:预期lstm_1_输入有3维,但得到了形状为(210969,40)的数组