首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >堆叠的LSTM网络中每个LSTM层的输入是什么?

堆叠的LSTM网络中每个LSTM层的输入是什么?
EN

Stack Overflow用户
提问于 2019-03-27 12:27:51
回答 2查看 5.3K关注 0票数 3

我很难理解层叠LSTM网络中层的输入输出流。假设我创建了一个堆叠的LSTM网络,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# parameters
time_steps = 10
features = 2
input_shape = [time_steps, features]
batch_size = 32

# model
model = Sequential()
model.add(LSTM(64, input_shape=input_shape,  return_sequences=True))
model.add(LSTM(32,input_shape=input_shape))

其中,我们的层叠LSTM网络由两个LSTM层组成,分别有64个和32个隐藏单元。在这种情况下,我们期望在每个时间步骤--第一层-LSTM(64)- -将作为输入传递到第二层-LSTM(32)- -一个大小为[batch_size, time-step, hidden_unit_length]的向量,它将在当前时间步表示第一个LSTM层的隐藏状态。令我困惑的是:

  1. 第二层LSTM层-LSTM( 32 )-作为输入接收第一层-LSTM(64)的隐藏状态,其大小为[batch_size, time-step, hidden_unit_length]并通过它自己的隐藏网络(在这种情况下由32个节点组成)吗?
  2. 如果第一个是真的,为什么第一层的input_shape (64)和第二层的-LSTM(32)是相同的,而第二层只处理第一层的隐藏状态?在我们的例子中,input_shape不应该设置为[32, 10, 64]

我发现下面的LSTM可视化非常有用(找到了这里),但是它并没有扩展到堆叠的lstm网络上:

任何帮助都将不胜感激。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2019-03-27 13:14:20

第一层只需要input_shape。随后的层以前一层的输出作为输入(因此忽略了它们的input_shape参数值)

下面的模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
model = Sequential()
model.add(LSTM(64, return_sequences=True, input_shape=(5, 2)))
model.add(LSTM(32))

表示以下体系结构

,您可以从model.summary()验证它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
lstm_26 (LSTM)               (None, 5, 64)             17152     
_________________________________________________________________
lstm_27 (LSTM)               (None, 32)                12416     
=================================================================

更换线路

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
model.add(LSTM(32))

使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
model.add(LSTM(32, input_shape=(1000000, 200000)))

仍然会给出相同的体系结构(使用model.summary()进行验证),因为input_shape会被忽略,因为它接受上一层的张量输出作为输入。

如果您需要一个序列来对体系结构进行排序,如下所示

您应该使用以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
model = Sequential()
model.add(LSTM(64, return_sequences=True, input_shape=(5, 2)))
model.add(LSTM(32, return_sequences=True))

应该返回一个模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
lstm_32 (LSTM)               (None, 5, 64)             17152     
_________________________________________________________________
lstm_33 (LSTM)               (None, 5, 32)             12416     
=================================================================
票数 6
EN

Stack Overflow用户

发布于 2020-08-10 19:52:39

在keras文档中,提到的输入是[batch_size, time-step, input_dim],而不是[batch_size, time-step, hidden_unit_length],所以我认为64,32协同响应X输入有64个特性,LSTM-32在每一时间步骤中都有32个特性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55385906

复制
相关文章
LSTM网络层详解及其应用实例
上一节我们介绍了RNN网络层的记忆性原理,同时使用了keras框架听过的SimpleRNN网络层到实际运用中。然而使用的效果并不理想,主要是因为simpleRNN无法应对过长单词串的输入,在理论上,当它接收第t个输入时,它应该能把前面好几个单词的处理信息记录下来,但实际上它无法把前面已经处理过的单词信息保留到第t个单词输入的时刻。
望月从良
2022/01/17
9590
LSTM网络层详解及其应用实例
基于keras的双层LSTM网络和双向LSTM网络
基于keras的双层LSTM网络和双向LSTM网络中,都会用到 LSTM层,主要参数如下:
全栈程序员站长
2022/07/05
1.4K0
基于keras的双层LSTM网络和双向LSTM网络
如何计算LSTM层中的参数数量
长短期记忆网络(通常称为“ LSTM”)是一种特殊的RNN,经过精心设计LSTM能够学习长期的依赖。正如他的名字,它可以学习长期和短期的依赖。
deephub
2022/11/11
2.5K0
如何计算LSTM层中的参数数量
LSTM模型搭建_LSTM神经网络
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/01
4850
LSTM时间序列预测及网络层搭建[通俗易懂]
最近看到一篇博客,是时间预测问题,数据和代码的原地址在这里, https://www.jianshu.com/p/5d6d5aac4dbd
全栈程序员站长
2022/07/23
1K0
LSTM时间序列预测及网络层搭建[通俗易懂]
理解 LSTM 网络
人类不会每一秒都从头开始思考。当你阅读这篇文章时,你会根据对之前单词的理解来理解每个单词。您不会扔掉所有东西并重新从头开始思考。你的思想有恒心。
小锋学长生活大爆炸
2022/05/09
6500
理解 LSTM 网络
理解LSTM网络
人类不会每时每刻都从头开始重新思考,就像你阅读这篇文章时,你会根据对上文的理解来推断每个词语的意思,而不是抛弃一切从零开始思考。换而言之,你的思想具有持久性。
花落花飞去
2018/02/02
8390
理解LSTM网络
理解 LSTM 网络
本文转自简书 原文作者:Colah 翻译:Not_GOD Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西都全部丢弃,然后用空白的大脑进行思考。我们的思想拥有持久性。 传统的神经网络并不能做到这点,看起来也像是一种巨大的弊端。例如,假设你希望对电影中的每个时间点的时间类型进行分类。传统的神经网络应该很难来处理这个问题——使用电影中先前的事件推断
用户1737318
2018/06/05
7220
理解Pytorch中LSTM的输入输出参数含义
在介绍LSTM各种参数含义之前我们还是需要先用一个例子(参考LSTM神经网络输入输出究竟是怎样的?Scofield的回答)来理解LSTM。
marsggbo
2020/06/12
5.4K0
lstm的keras实现_LSTM算法
LSTM 01:理解LSTM网络及训练方法 LSTM 02:如何为LSTMs准备数据 LSTM 03:如何使用Keras编写LSTMs LSTM 04:4种序列预测模型及Keras实现 LSTM 05:Keras实现多层LSTM进行序列预测 LSTM 06:如何用Keras开发CNN-LSTM LSTM 07:如何用Keras开发 Encoder-Decoder LSTM LSTM 08:超详细LSTM调参指南
全栈程序员站长
2022/10/02
2.3K0
lstm的keras实现_LSTM算法
[译] 理解 LSTM 网络
本文译自 Colah 的博文 Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西都全部丢弃,然后用空白的大脑进行思考。我们的思想拥有持久性。 传统的神经网络并不能做到这点,看起来也像是一种巨大的弊端。例如,假设你希望对电影中的每个时间点的时间类型进行分类。传统的神经网络应该很难来处理这个问题——使用电影中先前的事件推断后续的事件。 RNN 解决了这
用户1107453
2018/06/21
4230
(译)理解 LSTM 网络 (Understanding LSTM Networks by colah)
前言:其实之前就已经用过 LSTM 了,是在深度学习框架 keras 上直接用的,但是到现在对LSTM详细的网络结构还是不了解,心里牵挂着难受呀!今天看了 tensorflow 文档上面推荐的这篇博文,看完这后,焕然大悟,对 LSTM 的结构理解基本上没有太大问题。此博文写得真真真好!!!为了帮助大家理解,也是怕日后自己对这些有遗忘的话可以迅速回想起来,所以打算对原文写个翻译。首先声明,由于本人水平有限,如有翻译不好或理解有误的多多指出!此外,本译文也不是和原文一字一句对应的,为了方便理解可能会做一些调整和
Spark学习技巧
2018/06/22
1.3K0
如何在Python中扩展LSTM网络的数据
您的序列预测问题的数据可能需要在训练神经网络时进行缩放,例如LSTM递归神经网络。 当网络适合具有一定范围值(例如10s到100s的数量)的非标度数据时,大量的输入可能会降低网络的学习和收敛速度,并
AiTechYun
2018/03/02
4.1K0
如何在Python中扩展LSTM网络的数据
LSTM参数计算与TimeDistributed层
本篇主要讲LSTM的参数计算和Keras TimeDistributed层的使用。LSTM的输入格式为:[Simples,Time Steps,Features]
故事尾音
2019/12/18
2.3K0
LSTM参数计算与TimeDistributed层
LSTM和双向LSTM
参考连接:https://www.cnblogs.com/Allen-rg/p/11712703.html
全栈程序员站长
2022/07/04
1.5K0
LSTM和双向LSTM
关于torch.nn.LSTM()的输入和输出
input_size:一般是词嵌入的大小 hidden_size:隐含层的维度 num_layers:默认是1,单层LSTM bias:是否使用bias batch_first:默认为False,如果设置为True,则表示第一个维度表示的是batch_size dropout:直接看英文吧 bidirectional:默认为False,表示单向LSTM,当设置为True,表示为双向LSTM,一般和num_layers配合使用(需要注意的是当该项设置为True时,将num_layers设置为1,表示由1个双向LSTM构成)
西西嘛呦
2021/07/23
1.7K0
CNN,RNN,LSTM都是什么?
CNN 是一种前馈神经网络,通常由一个或多个卷积层(Convolutional Layer)和全连接层(Fully Connected Layer,对应经典的 NN)组成,此外也会包括池化层(Pooling Layer)。
叶锦鲤
2019/10/21
21.7K0
ON-LSTM:能表示语言层次的LSTM
LSTM作为序列模型一直是自然语言处理的最佳选择之一,即使transformer出现了也依然无法撼动LSTM在NLP界的江湖地位。
beyondGuo
2019/07/07
1.3K0
LSTM
引入自循环的巧妙思想,以产生梯度长时间持续流动的路径是初始长短期记忆(long short-term memory,LSTM)模型的核心贡献。其中一个关键扩展是自循环的权重视上下文而定,而不是固定的。门控此自循环(由另一个隐藏单元控制)的权重,累积的时间尺度可以动态地改变。在这种情况下,即使是具有固定参数的LSTM,累积的时间尺度也可以因输入序列而改变,因为时间常数是模型本身的输出。LSTM在无约束手写识别、语音识别、手写生成、机器翻译、为图像生成标题和解析中成功应用。
2018/09/04
8180
LSTM
[MachineLearning][转载]LSTM
转载自http://blog.csdn.net/jerr__y/article/details/58598296
wOw
2018/09/18
8150
[MachineLearning][转载]LSTM

相似问题

如何使用TensorFlow堆叠LSTM层

21

隐藏的堆叠LSTM层如何互连?Python

112

堆叠LSTM网络是如何工作的?

18

两个堆叠的LSTM层之间的连接是什么?

133

多层LSTM模型中LSTM层的形状

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文