我已阅读了很多有关此问题的帖子。它们互相矛盾,每个答案似乎都有不同的解释,所以我想根据我对它们的分析来提问。
正如Keras RNN文档所述,输入形状始终为这种形式(batch_size, timesteps, input_dim)
。我有点困惑,但我猜,不确定,input_dim
始终为1,而timesteps
取决于您的问题(也可能是数据维度)。这大致正确吗?
提出这个问题的原因是,当我尝试将input_dim
的值更改为我的数据集维度时(因为input_dim
听起来像这样!!),我总是会遇到错误。因此,我假设input_dim
代表LSTM在某一时刻的输入向量的形状。我又错了吗?
C = C.reshape((C.shape[0], C.shape[1], 1))
tr_C, ts_C, tr_r, ts_r = train_test_split(C, r, train_size=.8)
batch_size = 1000
print('Build model...')
model = Sequential()
model.add(LSTM(8, batch_input_shape=(batch_size, C.shape[1], 1), stateful=True, activation='relu'))
model.add(Dense(1, activation='relu'))
print('Training...')
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(tr_C, tr_r,
batch_size=batch_size, epochs=1,
shuffle=True, validation_data=(ts_C, ts_r))
谢谢!