如何选择 LSTM 二维输入形状?

how to choose LSTM 2-d input shape?

我正在尝试将具有 22 个特征 (22,2000) 的一维信号 (1,2000) 馈入 LSTM。
(一维信号以 200 赫兹的采样率在 10 秒内采集)
我有 808 批。 (808, 22, 2000)

我看到 LSTM 接收 3D 张量形状(batch_size,时间步长,input_dim)。
那么我的输入形状是否正确?
: (batch_size = 808, 时间步长 = 2000, input_dim = 3)

这是我的代码示例。

# data shape check
print(X_train.shape)
print(X_test.shape)
print(y_train.shape)
print(y_test.shape)
(727, 22, 2000)
(81, 22, 2000)
(727, 2)
(81, 2)

# Model Config
inputshape = (808,2000,2)  # 22 chanel, 2000 samples
lstm_1_cell_num = 20
lstm_2_cell_num = 20
inputdrop_ratio = 0.2
celldrop_ratio = 0.2

# define model
model = Sequential()
model.add(LSTM(lstm_1_cell_num, input_shape=inputshape, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(20))
model.add(LSTM(lstm_2_cell_num, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(2, activation='sigmoid'))
print(model.summary())
model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

第一个输入形状必须是 (22,2000),批次大小应在拟合函数中给出。所以试试这个

inputshape = (22,2000)

model.fit(X_train, y_train,
          batch_size=808,
          epochs=epochs,
          validation_data=(X_test,y_test),
          shuffle=True)