【问题标题】:LSTM Inputs ConfusionLSTM 输入混淆
【发布时间】:2020-12-29 02:32:10
【问题描述】:

我已经尝试理解 LSTM 输入有一段时间了,我想我理解了,但我一直对如何实现它们感到困惑。

这是我的想法,如果我错了,请纠正我。

在指定 LSTM 时,您需要指定单元数和输入形状(我一直遇到输入形状问题)。单元格数指定应查看给定数据的单元格数,并且不影响所需的输入形状。输入形状(当有状态时)按批次大小、批次中的时间步长和时间步长中的特征进行。有状态的 LSTM 会保留其内部状态,直到重置。是这样吗?

如果是这样,我在尝试为我的网络指定输入形状时感到非常困惑。这是因为我正在尝试升级当前网络,但我无法弄清楚如何以及在何处指定输入形状而不会出错。

我尝试升级它的方式最初是让 CNN 进入密集层。我正在尝试对其进行更改,使其添加一个 LSTM,该 LSTM 将 CNN 的扁平一维输出作为一个批次和一个时间步长,其特征取决于 CNN 输出的大小。然后将其输出与 CNN 的输出(LSTM 的输入)连接起来,然后馈送到密集层。因此,它现在的行为就像带有跳过连接的 LSTM。我似乎无法理解的问题是何时以及如何指定 LSTM 层的 Input_shape,因为它没有功能 API 的 INPUT_SHAPE 参数?或者也许我只是超级困惑,每个人都使用不同的 API 来查看不同的示例,这让我非常困惑什么是指定的和未指定的以及如何指定。

谢谢你,即使你只是在两个部分之一方面提供帮助。

TLDR:

  1. 我是否正确理解了 LSTM 参数?
  2. 如果需要,我应该如何以及何时指定 LSTM Input_shapes?

【问题讨论】:

    标签: python tensorflow keras deep-learning lstm


    【解决方案1】:

    LSTM 单位参数表示 LSTM 矩阵的维度和输出形状。

    使用功能 API,您可以仅为第一层指定输入形状。如果您的 LSTM 层遵循 CNN,则其输入形状会自动确定为 CNN 输出。

    【讨论】:

    • 谢谢。鉴于此,我仍然无法让我的 LSTM 阅读 CNN。我将 CNN 输出展平,并试图让它读取它,但由于形状,我不断收到错误,所以我不确定我是否正确理解了 LSTM 输入形状参数。这样做的原因是我需要 LSTM 将 CNN 的输出作为单个时间步来读取,除了将形状指定为 (1,1,Flattened CNN 输出的大小) 之外,我不确定如何执行此操作。这甚至可能吗? (有状态=真)如果我正确理解规则,我可能不得不将此作为一个新问题提出。
    • @ExodusSolis 你是对的 - 你必须创建一个新问题。我建议您的问题尽可能小,并尽可能用代码替换单词
    猜你喜欢
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多