# -*- encoding: utf-8 -*-
'''
@Author: Xiaosu Wang
@Email: 19110240018@fudan.edu.cn@Version : 1.0
@File : rnn.py
@Time : 2020-01-30 22:44@Description :Pytorch中RNN相关源码在文件:torch/nn/modules/rnn.py
'''import torch
import torch.nn as nninit_seed = 2020
torch.manual_seed(init_seed)
torch.cuda.manual_seed(init_seed)
# np.random.seed(init_seed) # 用于numpy的随机数def print_parameters(module):for name, params in module.named_parameters():print(name)print(params)'''
input_size: 输入特征维度,即词向量维度
hidden_size: 隐藏特征维度
num_layers: 层数。 Default: 1
nonlinearity: 非线性函数,'tanh' or 'relu'. Default: 'tanh'
bias: 是否加偏移。 Default: ``True``
batch_first: If ``True``, then the input and output tensors are providedas `(batch, seq, feature)`. Default: ``False`` (seq_len, batch, input_size)
dropout: 非0表示添加dropout层. Default: 0
bidirectional: If ``True``, becomes a bidirectional RNN. Default: ``False``
'''
rnn = nn.RNN(4, 5, 1) # RNN : input_size, hidden_size, num_layers
rnn_cell = nn.RNNCell(4, 5) # RNNCell : input_size, hidden_sizeinput = torch.randn(3, 2, 4)  # (seq_len, batch, input_size)
h0 = torch.randn(1, 2, 5) # (num_layers * num_directions, batch, hidden_size)# 计算RNN
output, hn = rnn(input, h0)# 用 RNNCell 模拟 RNN
hx = h0[0]
output_cell = []
for i in range(3):hx = rnn_cell(input[i], hx)output_cell.append(hx)print('----' * 5 + '两者结果不同' + '----' * 5 )print(output)
print(output_cell)print('----' * 5 + '观察 RNN 、RNNCell 的参数' + '----' * 5 )
print_parameters(rnn)
print('----' * 5)
print_parameters(rnn_cell)print('----' * 5 + '将 RNN 的参数赋值给 RNNCell,使两者 Cell 的参数一样' + '----' * 5 )
rnn_cell.weight_ih = rnn.weight_ih_l0
rnn_cell.weight_hh = rnn.weight_hh_l0
rnn_cell.bias_ih = rnn.bias_ih_l0
rnn_cell.bias_hh = rnn.bias_hh_l0print('----' * 5 + '观察 RNN 、RNNCell 的参数' + '----' * 5 )
print_parameters(rnn)
print('----' * 5)
print_parameters(rnn_cell)print('----' * 5 + '重新用 RNNCell 模拟 RNN' + '----' * 5 )output_cell = []
hx = h0[0]
for i in range(3):hx = rnn_cell(input[i], hx)output_cell.append(hx)print('----' * 5 + '两者结果相同' + '----' * 5 )print(output)
print(output_cell)print('----' * 5 + '多层、双向都是相同的道理' + '----' * 5 )

RNN、RNNCell相关推荐

  1. 自然语言处理入门实战——基于循环神经网络RNN、LSTM、GRU的文本分类(超级详细,学不会找我!!!)

    1  一.实验过程 1.1  实验目的 通过这个课程项目大,期望达到以下目的: 1.了解如何对 自然语言处理 的数据集进行预处理操作. 2.初识自然语言数据集处理操作的步骤流程. 3.进一步学习RNN ...

  2. 你有哪些 Deep learning(RNN、CNN)调参的经验?

    来自 | 知乎-hzwer,北京大学 https://www.zhihu.com/question/41631631/answer/859040970 编辑 | 机器学习算法与自然语言处理,Dataw ...

  3. 你有哪些深度学习(rnn、cnn)调参的经验?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 你有哪些deep learning(rnn.cnn)调参的经验? ...

  4. 循环神经网络(RNN、LSTM、GRU)

    循环神经网络(RNN.LSTM.GRU) 目录 循环神经网络(RNN.LSTM.GRU) 概述: 计算: LSTM(长短记忆模型): GRU:

  5. 深度学习NN、CNN、RNN、和DNN你了解吗?

    https://www.toutiao.com/a6680511919842918915/ 吴恩达(Andrew Ng),英文名Andrew Y.Ng,华裔美国人,斯坦福大学计算机科学系和电子工程系副 ...

  6. DNN、RNN、CNN.…..一文带你读懂这些绕晕人的名词

    DNN.RNN.CNN.-..一文带你读懂这些绕晕人的名词 https://mp.weixin.qq.com/s/-A9UVk0O0oDMavywRGIKyQ 「撞脸」一直都是娱乐圈一大笑梗. 要是买 ...

  7. CNN、RNN、DNN的内部网络结构有什么区别?

    来源:AI量化百科 神经网络技术起源于上世纪五.六十年代,当时叫感知机(perceptron),拥有输入层.输出层和一个隐含层.输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果.早期感知机 ...

  8. 完全图解RNN、RNN变体、Seq2Seq、Attention机制

    完全图解RNN.RNN变体.Seq2Seq.Attention机制 本文作者:思颖 2017-09-01 18:16 导语:帮助初学者开启全新视角 雷锋网(公众号:雷锋网) AI科技评论按:本文作者何 ...

  9. RNN、GRU、LSTM

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/weixin_42432468 学习心得: 1.每周的视频课程看一到两遍 2.做笔记 3.做每周的作业 ...

最新文章

  1. 仿QQ联系人的TableView的折叠与拉伸
  2. 数据挖掘开源项目立项
  3. ps如何修改图片大小尺寸_如何查看图片尺寸,大小及如何修改图片尺寸—淘宝美工入门课03...
  4. 谈推荐场景下的对比学习
  5. Same Tree - LeetCode
  6. 基于Pytorch版yolov5的滑块验证码破解思路
  7. IDAPython安装
  8. 计算机自动关机时间如何设置在哪设置方法,Win8设置电脑在某一个时间段自动关机的三种方法...
  9. win7计算机图标排列,win7文件夹内图标取消自动排列,取消自动排列
  10. 比较两条曲线的相似程度
  11. 基于Java的电影售票网站
  12. 车牌对应城市行政区编号
  13. 2011 Heilongjiang collegiate programming contest 【(7+1)/10】 [补完]
  14. matlab滤波实验,Refined Lee滤波实验MATLAB程序.docx
  15. linux 切换网络 命令,Linux 的常用网络命令
  16. 网络变压器 网络变压器基本线路及其设计目的和侧重点
  17. 注册Docker镜像加速器
  18. Linux下基于root新建用户,以user_00为例
  19. 清新黄色背景薪酬绩效考核管理模版PPT模板
  20. Android DirectBoot模式及其数据存储

热门文章

  1. android手机到iphone6s,iPhone6s相当于现在什么档次的安卓手机?结果让国产手机品牌汗颜...
  2. 【秘鲁收款】秘鲁外贸收款Pago Efectivo支付
  3. [vue] 无缝滚动 vue-seamless-scroll 滚动表格
  4. 黑客组织 LAPSUS$ 认领,英伟达超7万员工信息遭泄露时间线
  5. 中国计算机大师级别的人物,特级大师大多已退隐江湖,看谁能继承衣钵,成为新一代的象棋霸主...
  6. 学习VGG(网络讲解+代码)
  7. word转pdf时,图片错位,乱跑
  8. 国产设计软件都有哪些,国产设计工具推荐
  9. 三极管的经典之作,你知道吗?
  10. Ubuntu中使用freeradius配置RADIUS,并在RADIUS中配置LDAP