我正在使用lstm训练模型来预测股价,我使用了如下的多对一模式:
O
|
O O O O
| | | |
O O O O
并且我使用keras框架来构建网络,但是似乎无法轻松构建NN ...
这是我的python的lstm NN源代码:
def lstm_rls(num_in,num_out=1, batch_size=128, step=1,dim=1):
model = Sequential()
model.add(LSTM(
1024,
input_shape=(step, num_in),
return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(
512,
return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(1))
model.add(Activation('linear'))
model.compile(loss='mse', optimizer='rmsprop')
return model
我训练了大约512个纪元,但损失始终在7个纪元左右
第1/512页
3968/3968 [==============================]-4s 978us / step-损耗:48.6274
Epoch 2/512
3968/3968 [==============================]-1秒220us / step-损耗:11.1913
Epoch 3/512
3968/3968 [==============================]-1秒221us / step-损耗:6.8059
Epoch 4/512
3968/3968 [==============================]-1秒220us / step-损耗:6.7905
Epoch 5/512
3968/3968 [==============================]-1秒221us / step-损耗:6.8151
Epoch 6/512
3968/3968 [==============================]-1秒219us / step-损耗:6.7907
Epoch 7/512
3968/3968 [==============================]-1秒220us / step-损耗:6.8060
Epoch 8/512
3968/3968 [==============================]-1秒221us / step-损耗:6.7824
... ... ...
Epoch 509/512
3968/3968 [==============================]-1秒222us / step-损耗:6.7807
Epoch 510/512
3968/3968 [==============================]-1秒223us / step-损耗:6.8199
Epoch 511/512
3968/3968 [==============================]-1秒222us / step-损耗:6.7726
Epoch 512/512
3968/3968 [==============================]-1秒222us / step-损耗:6.7715
答案 0 :(得分:1)
我在图像字幕方面遇到了问题(我有四个Gpu tesla k20)。训练LSTM需要很长时间(大约几天)。我认为您的问题很自然。我使用的一种方法是增加批量大小。另一方面,批量大小的增加与性能和内存使用量有关。
答案 1 :(得分:0)
今天我看了一场关于调试技巧的讲座。它说,分析代码的一种方法是: 验证目标函数是否在较小的训练集上减少,而不是第一次出现。