【发布时间】:2018-11-13 20:06:03
【问题描述】:
我正在开发一个关于时间序列预测的机器学习项目,使用 Keras 库创建 RNN。我得到了很好的结果,但在决定层的设计时遇到了一些麻烦;我正在通过反复试验来解决这个问题,我似乎无法在网上找到任何关于如何选择每个层数和神经元数的指南。我该怎么办?
我的数据有 14 个变量,每个变量 510 天,我将 80% 用于训练(其中 20% 用于验证),其余用于测试。 我正在将网络的输入重塑为 (510, 1, 14),并且我已经进行了几次模拟,将值的窗口向后移动,因此形状最终为 (510, 1, 14*window_days)。我不明白是否将 1 设置为时间步并将先前时间步的值添加为变量是正确的方法,或者我是否应该重塑输入。
这是我正在使用的模型:
model = Sequential()
model.add(LSTM(units = 4, dropout=0,
input_shape=(1, train_X.shape[2]),
return_sequences=True))
model.add(LSTM(units = 1))
model.add(Dense(units = train_Y.shape[1], activation = 'linear'))
model.compile(optimizer = 'adam', loss = 'mean_squared_error')
history = model.fit(train_X, train_Y,
epochs=400, batch_size=150,
validation_split=0.2,shuffle=False)
【问题讨论】:
标签: keras