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…,-1.11481965-0.22158974-1.10055417] 在我的Python代码中,我使用Keras库。我尝试构建LSTM层。我正在使用input_形状,但无法很好地使用。我尝试将输入数据从二维重塑为三维。您可以在fit函数中看到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…,-
.........
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)的数组