基于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 相关文章推荐
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 Python
浅谈python对象数据的读写权限
Sep 12 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
python对离散变量的one-hot编码方法
Jul 11 Python
Python3爬楼梯算法示例
Mar 04 Python
Python JSON格式数据的提取和保存的实现
Mar 22 Python
python async with和async for的使用
Jun 20 Python
matplotlib.pyplot画图并导出保存的实例
Dec 07 Python
Python实现查找数据库最接近的数据
Jun 08 Python
基于django和dropzone.js实现上传文件
Nov 24 Python
python如何获取网络数据
Apr 11 Python
PO模式在selenium自动化测试框架的优势
Mar 20 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
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
2014/06/27 PHP
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
python 实现按对象传值
2019/12/26 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
Python中的__init__作用是什么
2020/06/09 Python
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
三项教育活动实施方案
2014/03/30 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
承诺书样本
2014/08/30 职场文书
2014年建筑工作总结
2014/11/26 职场文书
开场白怎么写
2015/06/01 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书