参数详解

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详解】相关推荐

  1. PyTorch中的torch.nn.Parameter() 详解

    PyTorch中的torch.nn.Parameter() 详解 今天来聊一下PyTorch中的torch.nn.Parameter()这个函数,笔者第一次见的时候也是大概能理解函数的用途,但是具体实 ...

  2. 长短时记忆网络(Long Short Term Memory,LSTM)详解

    长短时记忆网络是循环神经网络(RNNs)的一种,用于时序数据的预测或文本翻译等方面.LSTM的出现主要是用来解决传统RNN长期依赖问题.对于传统的RNN,随着序列间隔的拉长,由于梯度爆炸或梯度消失等问 ...

  3. torch.nn.Linear详解

    在学习transformer时,遇到过非常频繁的nn.Linear()函数,这里对nn.Linear进行一个详解. 参考:https://pytorch.org/docs/stable/_module ...

  4. torch.nn.MaxPool2d详解

    注意:这里展示的是本篇博文写时的版本最新的实现,但是后续会代码可能会迭代更新,建议对照官方文档进行学习. 先来看源码: # 这个类是是许多池化类的基类,这里有必要了解一下 class _MaxPool ...

  5. Tensorflow实现LSTM详解

    关于什么是 LSTM 我就不详细阐述了,吴恩达老师视频课里面讲的很好,我大概记录了课上的内容在吴恩达<序列模型>笔记一,网上也有很多写的好的解释,比如:LSTM入门.理解LSTM网络 然而 ...

  6. PyTorch的nn.Linear()详解

    1. nn.Linear() nn.Linear():用于设置网络中的全连接层,需要注意的是全连接层的输入与输出都是二维张量 一般形状为[batch_size, size],不同于卷积层要求输入输出是 ...

  7. RNN到LSTM详解

    RNN(Recurrent Neural Network)是一类用于处理序列数据的神经网络.首先我们要明确什么是序列数据,摘取百度百科词条:时间序列数据是指在不同时间点上收集到的数据,这类数据反映了某 ...

  8. Tensorflow(r1.4)API--tf.nn.conv2d详解

    (一)函数简介 conv2d(input,filter,strides,padding,use_cudnn_on=True,data_format='NHWC',name=None) 1.参数: in ...

  9. nn.Conv2d详解

    nn.Conv2d 是 PyTorch 中的一个卷积层,用于实现二维卷积操作.其主要参数有: in_channels:表示输入图像的通道数,也就是输入特征图的深度. out_channels:表示输出 ...

最新文章

  1. 别再写满屏的try-catch了,真丑,全局异常处理不会吗?
  2. 计算机科学与技术专业综合二,计算机科学与技术专业综合一第二页
  3. Android基础总结+SQlite数据库【申明:来源于网络】
  4. 科大星云诗社动态20210410
  5. navicat如何导入sql文件
  6. Vector shrink 请求容器降低其容量和size匹配 shrink_to_fit();
  7. 计算机2018创业方向,推荐2018年创业的方向
  8. 前端实现街道地图_来自法国的注重保护个人隐私的开源地图
  9. 结合CmakeList来更好地理解windows下的动态库和静态库
  10. linux怎么启动ibus框架,fedora13 gnu/linux下 重启启动ibus输入法框架
  11. 操作系统经典问题之哲学家就餐算法
  12. 固态硬盘系统经常假死_win10系统更换固态硬盘经常假死的解决方法
  13. 97年小伙“最牛简历”刷屏:面子算什么,我只想搞钱
  14. 万年历打印Java_java实验之打印万年历
  15. 现金流量表补充资料的编制公式
  16. 出租屋宽带网络解决方案
  17. 文明与征服平民武将搭配,教你克敌制胜
  18. echarts各种字体颜色的修改
  19. 动物数据集+动物分类识别训练代码(Pytorch)
  20. Web前端——立体相册的制作

热门文章

  1. 求助:matlab报错:位置 2 处的索引超出数组边界(1)
  2. 关于swfobject.js详解
  3. tinyint(1)和int(1)的区别
  4. Hadoop集群分布式安装
  5. 以太网UDP数据协议
  6. 正则匹配数字和字母php,用php与js实现正则匹配数字和字母组合的密码
  7. jstack 命令的使用和问题排查分析思路
  8. Python中使用遍历在列表中添加字典的坑
  9. c语言函数指针、结构体、枚举实例(详细)解析(快速掌握)
  10. 干货!十分钟搞懂消息队列的选型