使用 LSTM 进行多变量时间序列预测--问题汇总

刚接触LSTM,参考使用 LSTM 进行多变量时间序列预测这篇文章,写的很好,但是跑起来问题较多,可能是tensorflow的版本问题,跑的时候出现各种问题,今天上午改了一会,总算是跑通了,看这篇博客下面有类似问题的博友也很多,这里记录一下吧,希望有帮助.

2023年8月21号更新一下,时隔一年了,时间序列预测正式入门一年,也是有所收获吧,有一篇SCI期刊论文和一篇会议的产出,还算顺利,毕业了,大家也加油,有什么问题可以随时私聊,可以给些指导,已开启打赏,谢谢大家!

我的各个包版本信息

python3.7
keras2.3.1
tensorflow2.2.0

ps:原题主也是使用的tensorflow+keras,虽然tensorflow2.X时候自带keras,但我是重新下的keras!

问题1

grid_search.fit(trainX,trainY)报错,Cannot clone object <tensorflow.python.keras.wrappers.scikit_learn.KerasRegressor object at 0x7fc38c260f70>, as the constructor either does not set or modifies parameter validation_data

这个问题,把grid_model = KerasRegresso r(build_fn=build_model, verbose=1, validation_data=(testX,testY))
这里的validation_data=(testX,testY) 移动到下面的grid_search.fit(trainX,trainY) 里,更改后的代码为:

def build_model(optimizer):
    grid_model = Sequential()
    grid_model.add(LSTM(50,return_sequences=True,input_shape=(30,5)))
    grid_model.add(LSTM(50))
    grid_model.add(Dropout(0.2))
    grid_model.add(Dense(1))

    grid_model.compile(loss = 'mse',optimizer = optimizer)
    return grid_model

grid_model = KerasRegressor(build_fn=build_model,verbose=1)
parameters = {'batch_size' : [16,20],
              'epochs' : [8,10],
              'optimizer' : ['adam','Adadelta'] }

grid_search  = GridSearchCV(estimator = grid_model,
                            param_grid = parameters,
                            cv = 2)
grid_search = grid_search.fit(trainX,trainY,validation_data=(testX,testY))

这里改完之后应该就不会有太大的问题,

问题1.5

这个也不算问题,就是看评论区说程序一直跑,不会停下来,这其实是在循环寻找最优参数,大概十几轮就停了

下面的可能会遇到的问题,(我遇到的额外问题

问题2

Cannot convert a symbolic Tensor (lstm/strided_slice:0) to a numpy array.

这个是numpy版本不对应问题,使用1.19.2版本就行

pip install -U numpy==1.19.2

问题3

TypeError: Descriptors cannot not be created directly
降级protobuf即可

pip install 'protobuf~=3.19.0'

大概到这里就解决的差不多了,有别的问题欢迎留言区讨论.

  • 26
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 59
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 59
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三喂树屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值