如何为LSTM重新构建输入数据(Keras)

转自:https://jingyan.baidu.com/article/6b97984dd640b01ca2b0bf95.html

如何为LSTM重新构建输入数据(Keras)

  • 浏览:0
  • |
  • 更新:2017-09-07 12:07
  • 如何为LSTM重新构建输入数据(Keras) 1
  • 如何为LSTM重新构建输入数据(Keras) 2
  • 如何为LSTM重新构建输入数据(Keras) 3
  • 如何为LSTM重新构建输入数据(Keras) 4
  • 如何为LSTM重新构建输入数据(Keras) 5
  • 如何为LSTM重新构建输入数据(Keras) 6
  • 如何为LSTM重新构建输入数据(Keras) 7
分步阅读

    对于初入门的开发人员来说,这可能是非常困难的事情为LSTM模型准备序列数据。通常入门的开发者会在有关如何定义LSTM模型的输入层这件事情上感到困惑。还有关于如何将可能是1D或2D数字矩阵的序列数据转换可以输入到LSTM输入层所需的3D格式的困难。

  在本文中,你将了解如何将输入层定义为LSTM模型,以及如何重新构建可以输入到LSTM模型的输入数据。

       看完本文后,你将知道:

1. 如何定义LSTM的输入层。

2. 如何重塑LSTM模型的一维序列数据并定义输入层。

3. 如何重塑LSTM模型的多并行系列数据并定义输入层。

工具/原料

  • Keras

方法/步骤

  1. 1

    教程概述

           本文分为4部分:

    1. LSTM输入层。

    2. 具有单输入样本的LSTM示例。

    3. 具有多个输入特征的LSTM示例。

    4. LSTM输入提示。

  2. 2

    LSTM输入层

           LSTM输入层是由神经网络第一个隐藏层上的“input_shape”参数指定的。这可能会让初学者感到困惑。例如,以下是具有一个隐藏的LSTM层和一个密集输出层组成的神经网络示例。

    如何为LSTM重新构建输入数据(Keras)
  3.     在这个例子中,我们可以看到LSTM()层必须指定输入的形状。而且每个LSTM层的输入必须是三维的。这输入的三个维度是:

    样品。一个序列是一个样本。批次由一个或多个样本组成。

    时间步。一个时间步代表样本中的一个观察点。

    特征。一个特征是在一个时间步长的观察得到的。

           这意味着输入层在拟合模型时以及在做出预测时,对数据的要求必须是3D数组,即使数组的特定维度仅包含单个值。

           当定义LSTM网络的输入层时,网络假设你有一个或多个样本,并会给你指定时间步长和特征数量。你可以通过修改“ input_shape ”的参数修改时间步长和特征数量。例如,下面的模型定义了包含一个或多个样本,50个时间步长和2个特征的输入层。

    如何为LSTM重新构建输入数据(Keras)
  4. 具有单输入样本的LSTM示例

           考虑到你可能会有多个时间步骤和一个特征序列的情况,所以我们先从这种情况讲起。例如,这是一个包含10个数字的序列:

    0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0

           我们可以将这个数字序列定义为NumPy数组。

    如何为LSTM重新构建输入数据(Keras)
  5. 然后,我们可以使用NumPy数组中的reshape()函数将这个一维数组重构为三维数组,每个时间步长为1个样本,那么我们需要10个时间步长和1个特征。

           在数组上调用的reshape()函数需要一个参数,它是定义数组新形状的元组。我们不能干涉数据的重塑,重塑必须均匀地重组数组中的数据。

    如何为LSTM重新构建输入数据(Keras)
  6.        一旦重塑,我们可以打印阵列的新形状。

    如何为LSTM重新构建输入数据(Keras)
  7.        完整的例子如下:

    如何为LSTM重新构建输入数据(Keras)
  8.        运行示例打印单个样本的新3D形状:

    如何为LSTM重新构建输入数据(Keras)
  9.        该数据现在可以为input_shape(10,1)的LSTM的输入(X)。

    如何为LSTM重新构建输入数据(Keras)
  10. 具有多个输入功能的LSTM示例

           你的模型可能有多个并行数据作为输入的情况,接下来我们来看看这种情况。

           例如,这可以是两个并行的10个值:

    series 1: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0

    series 2: 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1

           我们可以将这些数据定义为具有10行的2列的矩阵:

    如何为LSTM重新构建输入数据(Keras)
  11. 该数据可以被设置为1个样本,具有10个时间步长和2个特征。

           它可以重新整形为3D阵列,如下所示:

    如何为LSTM重新构建输入数据(Keras)
  12.        完整的例子如下:

    如何为LSTM重新构建输入数据(Keras)
  13. 13

      运行示例打印单个样本的新3D形状。

    (1, 10, 2)

           该数据现在可以为input_shape(10,2)作为LSTM的输入(X)使用。

    如何为LSTM重新构建输入数据(Keras)

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值