首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Keras中,应该将哪些参数传递给LSTM函数的input_shape参数?

在Keras中,应该将哪些参数传递给LSTM函数的input_shape参数?
EN

Data Science用户
提问于 2019-06-16 12:50:52
回答 2查看 1.7K关注 0票数 1

我的数据集有2944424行6列。我在Keras使用LSTM来预测出租车需求。我有问题的input_shape参数的最低限度。

它给出了错误:

代码语言:javascript
复制
ValueError: Error when checking input: expected lstm_15_input to have 3 dimension
EN

回答 2

Data Science用户

回答已采纳

发布于 2019-06-16 18:03:38

输入应该是形状的(批次大小,步骤数,特性)。详情见以下内容:

https://machinelearningmastery.com/reshape-input-data-long-short-term-memory-networks-keras/

票数 0
EN

Data Science用户

发布于 2019-06-16 16:08:45

下面的示例显示,通过打印火车数据的形状,您可以将正确的值传递给input_shape()。另外,这取决于您想要以2D或其他方式提供数据。从片段中可以看到:

trainX.shape[1]=10

trainX.shape[2]=1440

以及基于测试形状Dense(units = 960)的输出

代码语言:javascript
复制
#Shape of train and test data
trainX, testX, trainY, testY = train_test_split(trainX,trainY, test_size=0.2 , shuffle=False)
print("train size: {}".format(trainX.shape))
print("train Label size: {}".format(trainY.shape))
print("test size: {}".format(testX.shape))
print("test Label size: {}".format(testY.shape))
#train size: (23, 10, 1440)
#train Label size: (23, 960)
#test size: (6, 10, 1440)
#test Label size: (6, 960)

# create and fit the Simple LSTM model 

#model_LSTM = Sequential()
model_LSTM.add(LSTM(units = 1440, input_shape=(trainX.shape[1], trainX.shape[2])))
model_LSTM.add(Dense(units = 960))

编辑:以下基于此示例的提示可以帮助您为LSTM准备输入数据:

  • LSTM输入层必须是3D的。
  • 三个输入维度的含义是:样本、时间步骤和特征。
  • LSTM输入层由第一个隐藏层上的input_shape参数定义。
  • input_shape参数由两个值组成,它们定义了时间步骤和特性的数量。
  • 假设样本数为1或更多。
  • reshape()函数在NumPy数组上可以用来重塑你的一维或二维数据为3D。
  • reshape()函数将元组作为定义新形状的参数。
票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/53896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档