基于pytorch的lstm参数使用详解


Posted in Python onJanuary 14, 2020

lstm(*input, **kwargs)

将多层长短时记忆(LSTM)神经网络应用于输入序列。

参数:

input_size:输入'x'中预期特性的数量

hidden_size:隐藏状态'h'中的特性数量

num_layers:循环层的数量。例如,设置' ' num_layers=2 ' '意味着将两个LSTM堆叠在一起,形成一个'堆叠的LSTM ',第二个LSTM接收第一个LSTM的输出并计算最终结果。默认值:1

bias:如果' False',则该层不使用偏置权重' b_ih '和' b_hh '。默认值:'True'

batch_first:如果' 'True ' ',则输入和输出张量作为(batch, seq, feature)提供。默认值: 'False'

dropout:如果非零,则在除最后一层外的每个LSTM层的输出上引入一个“dropout”层,相当于:attr:'dropout'。默认值:0

bidirectional:如果‘True',则成为双向LSTM。默认值:'False'

输入:input,(h_0, c_0)

**input**of shape (seq_len, batch, input_size):包含输入序列特征的张量。输入也可以是一个压缩的可变长度序列。

see:func:'torch.nn.utils.rnn.pack_padded_sequence' 或:func:'torch.nn.utils.rnn.pack_sequence' 的细节。

**h_0** of shape (num_layers * num_directions, batch, hidden_size):张量包含批处理中每个元素的初始隐藏状态。

如果RNN是双向的,num_directions应该是2,否则应该是1。

**c_0** of shape (num_layers * num_directions, batch, hidden_size):张量包含批处理中每个元素的初始单元格状态。

如果没有提供' (h_0, c_0) ',则**h_0**和**c_0**都默认为零。

输出:output,(h_n, c_n)

**output**of shape (seq_len, batch, num_directions * hidden_size) :包含LSTM最后一层输出特征' (h_t) '张量,

对于每个t. If a:class: 'torch.nn.utils.rnn.PackedSequence' 已经给出,输出也将是一个打包序列。

对于未打包的情况,可以使用'output.view(seq_len, batch, num_directions, hidden_size)',正向和反向分别为方向' 0 '和' 1 '。

同样,在包装的情况下,方向可以分开。

**h_n** of shape (num_layers * num_directions, batch, hidden_size):包含' t = seq_len '隐藏状态的张量。

与*output*类似, the layers可以使用以下命令分隔

h_n.view(num_layers, num_directions, batch, hidden_size) 对于'c_n'相似

**c_n** (num_layers * num_directions, batch, hidden_size):张量包含' t = seq_len '的单元状态

所有的权重和偏差都初始化自: 基于pytorch的lstm参数使用详解 where: 基于pytorch的lstm参数使用详解

include:: cudnn_persistent_rnn.rst
import torch
import torch.nn as nn
 
# 双向rnn例子
# rnn = nn.RNN(10, 20, 2)
# input = torch.randn(5, 3, 10)
# h0 = torch.randn(2, 3, 20)
# output, hn = rnn(input, h0)
# print(output.shape,hn.shape)
# torch.Size([5, 3, 20]) torch.Size([2, 3, 20])
 
# 双向lstm例子
rnn = nn.LSTM(10, 20, 2)   #(input_size,hidden_size,num_layers)
input = torch.randn(5, 3, 10)  #(seq_len, batch, input_size)
h0 = torch.randn(2, 3, 20)    #(num_layers * num_directions, batch, hidden_size)
c0 = torch.randn(2, 3, 20)    #(num_layers * num_directions, batch, hidden_size)
# output:(seq_len, batch, num_directions * hidden_size)
# hn,cn(num_layers * num_directions, batch, hidden_size)
output, (hn, cn) = rnn(input, (h0, c0)) 
 
print(output.shape,hn.shape,cn.shape)
>>>torch.Size([5, 3, 20]) torch.Size([2, 3, 20]) torch.Size([2, 3, 20])

以上这篇基于pytorch的lstm参数使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python如何获取列表(List)的中位数
Aug 12 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
Aug 15 Python
python如何实现int函数的方法示例
Feb 19 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
对python中的logger模块全面讲解
Apr 28 Python
Python批处理删除和重命名文件夹的实例
Jul 11 Python
python实现AES加密解密
Mar 28 Python
使用 Django Highcharts 实现数据可视化过程解析
Jul 31 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
Python xmltodict模块安装及代码实例
Oct 05 Python
pycharm 复制代码出现空格的解决方式
Jan 15 Python
Python图像处理之图像拼接
Apr 28 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 #Python
np.random.seed() 的使用详解
Jan 14 #Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
Jan 14 #Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
Jan 14 #Python
pytorch+lstm实现的pos示例
Jan 14 #Python
Python中sorted()排序与字母大小写的问题
Jan 14 #Python
Pytorch实现LSTM和GRU示例
Jan 14 #Python
You might like
js下函数般调用正则的方法附代码
2008/06/22 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
PHP学习之数组值的操作
2011/04/17 PHP
PHP高级对象构建 多个构造函数的使用
2012/02/05 PHP
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
jquery图片切换插件
2015/03/16 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
2017/07/10 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
Vue中props的详解
2019/05/16 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
CentOS7下python3.7.0安装教程
2018/07/30 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
Python urllib3软件包的使用说明
2020/11/18 Python
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
青年标兵事迹材料
2014/08/16 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
给学校的建议书400字
2015/09/14 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS