我是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模型上改变什么价值呢? 我现在已经尝试过这种方式了。我不确定输入形状。
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'])
我应该如何处理数据形状?
我应该将我的数据重塑为另一种形状吗?