我是Keras的新手,我发现很难理解LSTM层的输入数据的形状 .
Keras文档说输入数据应该是具有形状的3D张量(nb_samples,timesteps,input_dim) .

我有808个信号 .
每个信号有22个通道和2000个数据点 .

Data_shape : (808,22,2000)

此外,我每个信号都有808个标签 .

Label_shape : (808,2)
Label[1,:] = [1,0]

我想用slice 2000数据点分析成20个时间步长,每个步骤(lstm cell)接收100个数据点 .
在我看来,有20个LSTM单元,每个LSTM单元接收(22,100)数据,这是100个数据点,22个通道(特征) .

所以这是我的问题

  • 在我的数据案例中,Keras LSTM的输入形状是什么?
    我应该在LSTM模型上改变什么 Value ?
    我现在尝试过这种方式 . 我不确定输入形状 .
print(X_train.shape)  
print(y_train.shape)
(727, 22, 2000)
(727, 2)

model = Sequential()
model.add(LSTM(20, input_shape=(22,2000), dropout=0.2, recurrent_dropout=0.2, return_sequences=True))
model.add(Dense(20))
model.add(LSTM(20, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(2, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='Adadelta', metrics=['accuracy'])
  • 我的数据形状怎么办?
    我应该将我的数据重塑为另一种形状吗?