使用 Keras 创建 RNN Python

Creating an RNN with Keras Python

我是机器学习和 Keras 的新手。我用 Keras 制作了一个神经网络用于回归,如下所示:

model = Sequential()
model.add(Dense(57, input_dim=44, kernel_initializer='normal', 
activation='relu'))
model.add(Dense(45, activation='relu'))
model.add(Dense(35, activation='relu'))
model.add(Dense(20, activation='relu'))
model.add(Dense(18, activation='relu'))
model.add(Dense(15, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(5, activation='relu'))
model.add(Dense(5, activation='relu'))
model.add(Dense(1, activation='linear'))

我的数据有 44 个维度,所以请你给我一个例子,我如何制作一个 RNN。我正在尝试这样:

model = Sequential()
model.add(LSTM(44, input_shape=(6900, 44), ))
model.add(Dense(1))
model.compile(loss='mape', optimizer='adam', metrics=['mse', 'mae', 'mape'])
model.fit(X_train, y_train, epochs=100, batch_size=10, verbose=1)

但是我得到这个错误: 检查输入时出错:预期 lstm_13_input 有 3 个维度,但得到形状为 (6900, 44)

的数组

据我了解,您的数据是 44 维度的,而不是时间序列。 RNN 是对数据序列的计算操作,即 2D 而不是 1D 张量。但是您仍然可以将 RNN 用于 1D 向量,方法是将它们不是解释为一个 n 维向量,而是解释为 n 个步骤的时间序列,每个步骤包含一个 1D向量。

model = Sequential()
model.add(Reshape((-1, 1)
model.add(LSTM(44, input_shape=(6900, 44), ))
model.add(Dense(1))
model.compile(loss='mape', optimizer='adam', metrics=['mse', 'mae', 'mape'])
model.fit(X_train, y_train, epochs=100, batch_size=10, verbose=1)