RNN


x 为当前状态下数据的输入, h 表示接收到的上一个节点的输入。

y为当前节点状态下的输出,而h′h^\primeh′为传递到下一个节点的输出.

LSTM





#定义网络
lstm = nn.LSTM(input_size=20,hidden_size=50,num_layers=2)
#输入变量
input_data = Variable(torch.randn(100,32,20))
#初始隐状态
h_0 = Variable(torch.randn(2,32,50))
#输出记忆细胞
c_0 = Variable(torch.randn(2,32,50))
#输出变量
output,(h_t,c_t) = lstm(input_data,(h_0,c_0))
print(output.size())
print(h_t.size())
print(c_t.size())
#参数大小为(50x4,20),是RNN的四倍
print(lstm.weight_ih_l0)
print(lstm.weight_ih_l0.size())
打印结果:
torch.Size([100, 32, 50])
torch.Size([2, 32, 50])
torch.Size([2, 32, 50])
tensor([[ 0.0068, -0.0925, -0.0343, …, -0.1059, 0.0045, -0.1335],
[-0.0509, 0.0135, 0.0100, …, 0.0282, -0.1232, 0.0330],
[-0.0425, 0.1392, 0.1140, …, -0.0740, -0.1214, 0.1087],
…,
[ 0.0217, -0.0032, 0.0815, …, -0.0605, 0.0636, 0.1197],
[ 0.0144, 0.1288, -0.0569, …, 0.1361, 0.0837, -0.0021],
[ 0.0355, 0.1045, 0.0339, …, 0.1412, 0.0371, 0.0649]],
requires_grad=True)
torch.Size([200, 20])

注意LSTM的参数,rnn.weight_ih_l0 为 wiw_i~wi​  的权重
rnn.weight_hh_l0 为 whw_h~wh​  的权重,并且为hidden_size的4倍。

GRU


两个门控

PyTorch中的循环神经网络(RNN+LSTM+GRU)
人人都能看懂的GRU
人人都能看懂的LSTM

RNN,LSTM,GRU的理解相关推荐

  1. RNN LSTM GRU 代码实战 ---- 简单的文本生成任务

    RNN LSTM GRU 代码实战 ---- 简单的文本生成任务 import torch if torch.cuda.is_available():# Tell PyTorch to use the ...

  2. ​​​​​​​DL之RNN/LSTM/GRU:RNN/LSTM/GRU算法动图对比、TF代码定义之详细攻略

    DL之RNN/LSTM/GRU:RNN/LSTM/GRU算法动图对比.TF代码定义之详细攻略 目录 RNN.LSTM.GRU算法对比 1.RNN/LSTM/GRU对比 2.RNN/LSTM/GRU动图 ...

  3. DL之LSTM:LSTM算法论文简介(原理、关键步骤、RNN/LSTM/GRU比较、单层和多层的LSTM)、案例应用之详细攻略

    DL之LSTM:LSTM算法论文简介(原理.关键步骤.RNN/LSTM/GRU比较.单层和多层的LSTM).案例应用之详细攻略 目录 LSTM算法简介 1.LSTM算法论文 1.1.LSTM算法相关论 ...

  4. RNN, LSTM, GRU, SRU, Multi-Dimensional LSTM, Grid LSTM, Graph LSTM系列解读

    RNN/Stacked RNN rnn一般根据输入和输出的数目分为5种 一对一 最简单的rnn 一对多 Image Captioning(image -> sequence of words) ...

  5. RNN,LSTM,GRU计算方式及优缺点

    本文主要参考李宏毅老师的视频介绍RNN相关知识,主要包括两个部分: 分别介绍Navie RNN,LSTM,GRU的结构 对比这三者的优缺点 1.RNN,LSTM,GRU结构及计算方式 1.1 Navi ...

  6. 图解 RNN, LSTM, GRU

    参考: Illustrated Guide to Recurrent Neural Networks Illustrated Guide to LSTM's and GRU's: A step by ...

  7. RNN,LSTM,GRU基本原理的个人理解重点

    20210626 循环神经网络_霜叶的博客-CSDN博客 LSTM的理解 - 走看看 重点 深入LSTM结构 首先使用LSTM的当前输入 (x^t)和上一个状态传递下来的 (h^{t-1}) 拼接训练 ...

  8. Pytorch中如何理解RNN LSTM GRU的input(重点理解seq_len / time_steps)

    在建立时序模型时,若使用keras,我们在Input的时候就会在shape内设置好sequence_length(后面简称seq_len),接着便可以在自定义的data_generator内进行个性化 ...

  9. [PyTorch] rnn,lstm,gru中输入输出维度

    本文中的RNN泛指LSTM,GRU等等 CNN中和RNN中batchSize的默认位置是不同的. CNN中:batchsize的位置是position 0. RNN中:batchsize的位置是pos ...

  10. 序列模型简介——RNN, Bidirectional RNN, LSTM, GRU

    既然我们已经有了前馈网络和CNN,为什么我们还需要序列模型呢?这些模型的问题在于,当给定一系列的数据时,它们表现的性能很差.序列数据的一个例子是音频的剪辑,其中包含一系列的人说过的话.另一个例子是英文 ...

最新文章

  1. cmd查看所有数据库 db2_DB2数据库常用命令集
  2. curl命令具体解释
  3. Reversing Ethereum Smart Contracts: Part 2
  4. python绘制直角坐标系_小白学 Python 数据分析(16):Matplotlib(一)坐标系
  5. 喜大普奔!BFE 控制平面正式开源发布!
  6. 分支结构定义java_[Android-Java]2.分支结构-(4-7)
  7. 跟ASP.NET MVC一起使用jQuery
  8. 【汇编】JMP跳转指令的指令长度、直接转移与间接转移、段内跳转与段间跳转
  9. 检查radio/checkbox是否至少选择一项
  10. 淘宝店铺首页全屏轮播图制作
  11. 运营技巧︱用户运营中,如何提高用户转化率
  12. 总结几点 Wake On Lan (WOL) 失败的原因
  13. C语言程序设计——用户密码输入与判断
  14. Qt 开发ARM64程序
  15. 华为、魅族手机不显示Log的原因
  16. 2020年年终总结_By 吾方羡
  17. leetcode 56. 合并区间
  18. Android 进阶 1、sqlite数据库
  19. spl android,SPL Spectrum Analyzer
  20. POJ -1568 Alpha-Beta剪枝极大极小搜索

热门文章

  1. mysql pt_MySQL慢查询之pt-query-digest分析慢查询日志
  2. python判断阿姆斯特朗数_Python 程序检查阿姆斯特朗数
  3. jq之slideup()
  4. linux消息总线日志,linux – 解密继续mpt2sas系统日志消息
  5. 计算机网络实验报告访问控制列表,电子政务《计算机网络实验》期末报告 07-访问控制列表实验报告.doc...
  6. 从714里连续减去6减几次得0_数学干货 | 小学数学1—6年级基础知识整理 ,预习复习都能用...
  7. 处理入参_看看优秀的程序员是如何处理NPE的
  8. php ioc容器,PHP 在Swoole中使用双IoC容器实现无污染的依赖注入
  9. 查找空目录Linux,Linux中find批量删除空文件及空文件夹脚本
  10. 计算机自然语言的中国科学家,中科院教授王斌加入小米 任自然语言处理首席科学家...