如何为keras lstm输入重塑我的数据?

时间:2017-12-09 08:44:26

标签: python keras signals lstm

我是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个通道(特征)。

所以这是我的问题

  1. 在我的数据案例中,Keras LSTM的输入形状是什么? 我应该在LSTM模型上改变什么价值呢? 我现在已经尝试过这种方式了。我不确定输入形状。

    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'])
    
  2. 我应该如何处理数据形状?
    我应该将我的数据重塑为另一种形状吗?

0 个答案:

没有答案