为了账号安全,请及时绑定邮箱和手机立即绑定

Keras LSTM 类型错误消息

Keras LSTM 类型错误消息

倚天杖 2021-11-09 15:11:35
我试图了解如何使用 keras 进行供应链预测,但我不断收到在其他地方找不到帮助的错误。我试过做类似的教程;太阳黑子预测教程、污染多元教程等,但我仍然不明白 input_shape 参数是如何工作的,或者如何组织我的数据以使其被 keras 接受。我的数据集是一个单一的时间序列,描述了我们每个月销售的产品数量。我把那个单一的时间序列,107 个月,变成了一个 30 行,77 列的数据集。我从中创建了一个训练集和测试集。但无论我做什么,即使只是创建一个没有某种错误的模型,我也无法通过。Keras v #: 1.2.0C:\用户\ Ryan.B>蟒-c “进口keras;打印(keras版)”使用 TensorFlow 后端。1.2.0Python版本:3.5.4这是我得到的代码和相应的错误。任何帮助解决这些错误,以及了解 input_shape 和 output_dim 如何工作的将不胜感激!最终,我想开始使用诸如每月营销预算/指标和销售团队指标之类的东西作为多变量预测的外部回归量,但一次一个步骤。感谢您的时间和投入!
查看完整描述

1 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

你真的应该升级到 Keras 2;在 Keras 1.x 中,units甚至不是一个有效的参数,因此你的错误:


import keras

from keras.models import Sequential

from keras.layers import LSTM

keras.__version__

# '2.2.4'

您的情况在 Keras 2 中仍然出现错误,尽管有所不同:


model = Sequential()

model.add(LSTM(units=64, input_shape=(77, 1), output_dim=1))

[...]

TypeError: For the `units` argument, the layer received both the legacy keyword argument `output_dim` and the Keras 2 keyword argument `units`. Stick to the latter!

省略遗留output_dim参数,正如消息所建议的那样,我们让它工作:


model = Sequential()

model.add(LSTM(units=64, input_shape=(77, 1)))


model.summary()

# result:

_________________________________________________________________

Layer (type)                 Output Shape              Param #   

=================================================================

lstm_1 (LSTM)                (None, 64)                16896     

=================================================================

Total params: 16,896

Trainable params: 16,896

Non-trainable params: 0

_________________________________________________________________

所以,我真的建议你升级到 Keras 2(我非常怀疑 Keras 1.x 与 Tensorflow 1.2 兼容),如果你仍然有问题,请打开一个新问题......


查看完整回答
反对 回复 2021-11-09
  • 1 回答
  • 0 关注
  • 269 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信