基于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搭建Django应用程序步骤及版本冲突问题解决
Nov 19 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
基于python3的socket聊天编程
Feb 17 Python
Django choices下拉列表绑定实例
Mar 13 Python
关于Keras Dense层整理
May 21 Python
Python headers请求头如何实现快速添加
Nov 03 Python
Python selenium的这三种等待方式一定要会!
Jun 10 Python
Python pandas读取CSV文件的注意事项(适合新手)
Jun 20 Python
python实现简易自习室座位预约系统
Jun 30 Python
Python OpenCV实现图像模板匹配详解
Apr 07 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
PHP session垃圾回收机制实例分析
2019/06/28 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
网页右下角弹出窗体实现代码
2014/06/05 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
完善的jquery处理机制
2016/02/21 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
2016/10/30 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
vue登录注册实例详解
2019/09/14 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
vue+iview使用树形控件的具体使用
2020/11/02 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
Python微信公众号开发平台
2018/01/25 Python
python方法生成txt标签文件的实例代码
2018/05/10 Python
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
Python 最强编辑器详细使用指南(PyCharm )
2019/09/16 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
LocalStorage记住用户和密码功能
2017/07/24 HTML / CSS
MADE法国:提供原创设计师家具
2018/09/18 全球购物
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
学生喝酒检讨书500字
2014/11/02 职场文书
公务员年度个人总结
2015/02/12 职场文书
MySQL中in和exists区别详解
2021/06/03 MySQL
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server