【nn.LSTM详解】
参数详解
nn.LSTM是pytorch中的模块函数,调用如下:
torch.nn.lstm(input_size,hidden_size,num_layers,bias,batch_first,dropout,bidirectional)
详细介绍一下参数:
input_size:表示的是输入的矩阵特征数,或者说是输入的维度;
hidden_size:隐藏层的大小(即隐藏层节点数量),输出向量的维度等于隐藏节点数;
num_layers:lstm 隐层的层数,默认为1;
bias:隐层状态是否带 bias,默认为 true;
batch_first:True 或者 False,如果是 True,则 input 为(batch, seq, input_size),默认值为:False(seq_len, batch, input_size)
dropout:默认值0,除最后一层,每一层的输出都进行dropout;
bidirectional:如果设置为 True, 则表示双向 LSTM,默认为 False。
输入输出
nn.LSTM中输入与输出关系为output, (hn, cn) = lstm(input, (h0, c0)),输入输出格式如下:
##输入数据格式:
input(seq_len, batch, input_size)
h0(num_layers * num_directions, batch, hidden_size)
c0(num_layers * num_directions, batch, hidden_size)##输出数据格式:
output(seq_len, batch, hidden_size * num_directions)
hn(num_layers * num_directions, batch, hidden_size)
cn(num_layers * num_directions, batch, hidden_size)
input (seq_len, batch, input_size),seq_len表示每个batch输入多少数据,batch表示把数据分成了batch批,input_size为样本输入维度。
output(seq_len, batch, hidden_size * num_directions),output是一个三维张量,第一维表示序列长度,第二维表示数据批次的多少batch,即数据分为几批送进来,第三维hidden_size隐藏层大小,双向则二倍,单向则等价于隐藏层大小。
hn是一个三维张量,第一维是num_layers*num_directions,num_layers是我们定义的神经网络的层数,num_directions表示是否为双向LSTM;第二维表示一批的样本数量;第三维表示隐藏层的大小。
c_n与h_n一致。
【nn.LSTM详解】相关推荐
- PyTorch中的torch.nn.Parameter() 详解
PyTorch中的torch.nn.Parameter() 详解 今天来聊一下PyTorch中的torch.nn.Parameter()这个函数,笔者第一次见的时候也是大概能理解函数的用途,但是具体实 ...
- 长短时记忆网络(Long Short Term Memory,LSTM)详解
长短时记忆网络是循环神经网络(RNNs)的一种,用于时序数据的预测或文本翻译等方面.LSTM的出现主要是用来解决传统RNN长期依赖问题.对于传统的RNN,随着序列间隔的拉长,由于梯度爆炸或梯度消失等问 ...
- torch.nn.Linear详解
在学习transformer时,遇到过非常频繁的nn.Linear()函数,这里对nn.Linear进行一个详解. 参考:https://pytorch.org/docs/stable/_module ...
- torch.nn.MaxPool2d详解
注意:这里展示的是本篇博文写时的版本最新的实现,但是后续会代码可能会迭代更新,建议对照官方文档进行学习. 先来看源码: # 这个类是是许多池化类的基类,这里有必要了解一下 class _MaxPool ...
- Tensorflow实现LSTM详解
关于什么是 LSTM 我就不详细阐述了,吴恩达老师视频课里面讲的很好,我大概记录了课上的内容在吴恩达<序列模型>笔记一,网上也有很多写的好的解释,比如:LSTM入门.理解LSTM网络 然而 ...
- PyTorch的nn.Linear()详解
1. nn.Linear() nn.Linear():用于设置网络中的全连接层,需要注意的是全连接层的输入与输出都是二维张量 一般形状为[batch_size, size],不同于卷积层要求输入输出是 ...
- RNN到LSTM详解
RNN(Recurrent Neural Network)是一类用于处理序列数据的神经网络.首先我们要明确什么是序列数据,摘取百度百科词条:时间序列数据是指在不同时间点上收集到的数据,这类数据反映了某 ...
- Tensorflow(r1.4)API--tf.nn.conv2d详解
(一)函数简介 conv2d(input,filter,strides,padding,use_cudnn_on=True,data_format='NHWC',name=None) 1.参数: in ...
- nn.Conv2d详解
nn.Conv2d 是 PyTorch 中的一个卷积层,用于实现二维卷积操作.其主要参数有: in_channels:表示输入图像的通道数,也就是输入特征图的深度. out_channels:表示输出 ...
最新文章
- 别再写满屏的try-catch了,真丑,全局异常处理不会吗?
- 计算机科学与技术专业综合二,计算机科学与技术专业综合一第二页
- Android基础总结+SQlite数据库【申明:来源于网络】
- 科大星云诗社动态20210410
- navicat如何导入sql文件
- Vector shrink 请求容器降低其容量和size匹配 shrink_to_fit();
- 计算机2018创业方向,推荐2018年创业的方向
- 前端实现街道地图_来自法国的注重保护个人隐私的开源地图
- 结合CmakeList来更好地理解windows下的动态库和静态库
- linux怎么启动ibus框架,fedora13 gnu/linux下 重启启动ibus输入法框架
- 操作系统经典问题之哲学家就餐算法
- 固态硬盘系统经常假死_win10系统更换固态硬盘经常假死的解决方法
- 97年小伙“最牛简历”刷屏:面子算什么,我只想搞钱
- 万年历打印Java_java实验之打印万年历
- 现金流量表补充资料的编制公式
- 出租屋宽带网络解决方案
- 文明与征服平民武将搭配,教你克敌制胜
- echarts各种字体颜色的修改
- 动物数据集+动物分类识别训练代码(Pytorch)
- Web前端——立体相册的制作