当前位置: 首页 > 知识库问答 >
问题:

PyTorch中RNN(nn. LSTM、nn. GRU等)的输出h_n是如何构建的?

拓拔欣嘉
2023-03-14

医生说

形状的大小(num\u layers*num\u directions,batch,hidden\u size):包含t=seq\u len的隐藏状态的张量

现在,批次和hidden_size维度几乎不言自明。不过,第一个维度仍然是个谜。

我假设所有层的所有“最后一个单元”的隐藏状态都包含在该输出中。但是,例如,“最上层”中“最后一个单元格”的隐藏状态的索引是什么<代码>h\u n[-1]<代码>h\u n[0]?

输出是否受batch\u first(批处理优先)选项的影响?

共有1个答案

赵鸿畴
2023-03-14

Pytork中LSTM和GRU的实现自动包括LSTM和GRU堆叠层的可能性。

您可以使用关键字argumentnn给出此参数。LSTM(num\u layers=num\u layers)num\u layers是您拥有的堆叠LSTM(或GRU)的数量。默认值为1,这将为您提供基本的LSTM。

num\u directions为1或2。正常LSTM和GRU为1,双向RNN为2。

因此,在您的情况下,您可能有一个简单的LSTM或GRU,因此num\u layers*num\u directions的值将是1。

h\u n[0]是最底层(接收输入的层)的隐藏状态,以及最顶层(输出网络输出的层)的隐藏状态。

将批次维度置于时间维度之前(默认为批次维度之前的时间维度),因为隐藏状态没有时间维度,batch\u first对隐藏状态形状没有影响。

 类似资料:
  • 我试图理解输出,以便更好地调试。 我对这些看似随机生成的字母数字字符串的含义感到困惑。 例如: 我相信下面的字符串是图像ID。 剩下的是什么?什么是层次?每次我对Dockerfile稍作修改后构建时,它们似乎都会重新构建 从“装载”是什么意思?

  • 所以我有一个相当简单的堆栈,我正在尝试设置它,由一个订阅SNS主题的Lambda函数组成。我想将代码管道分为三个阶段:源代码(GitHub)- 我设法拼凑了一个模板和buildspec文件,但我不知道应该如何引用CodeBuild在CloudFormation模板中生成的输出工件;现在我只有占位符内联代码。 基本上,我应该在Lambda函数的属性中放入什么来获取CodeBuild文件(这是我在Co

  • 我有一个Jenkins(我是新手)系统,它有一些限制: 主/从排列 从服务器是Windows 7 安装插件可能会遇到很大阻力 生成将存档到Windows共享 我正在使用构建后步骤将二进制文件推送到存档服务器,但我还没有找到一种方法来安排构建日志也在那里结束。我发现控制台输出可以在http://jenkins/job/$jobtitle/$buildnumber/consoletext上获得,但我不

  • 我有一个多项目的设置,在这里我想从某些子项目构建Rpm文件,包含其他子项目的人工制品。看来我需要一些基本的基础知识。 项目布局如下: 这两个服务都依赖于CommonLibs。 我使用的是Nebula.os-Package 2.0.2和Gradle2.2快照版本。 null 所以,我想我应该在serviceA和ServiceB的中做这样的事情: 显然,这是行不通的: 好的,serviceA不是一个J

  • 我正在用facenet pytorch做一个人脸识别应用(https://github.com/timesler/facenet-pytorch)在python中使用两种方法。 第一种方法代码- 在这个代码中,我从给定的图像中提取人脸,并获得用于识别人脸的512编码。 在本例中,我使用了两个不同的面,并绘制了面之间的距离 它工作得很好... 第二种方法代码- 在这段代码中,我通常先获得面坐标,然后

  • 我对下面代码片段中的方法感到困惑。 我的困惑在于以下几行。 什么是张量。view()函数的作用是什么?我在很多地方见过它的用法,但我不明白它是如何解释它的参数的。 如果我将负值作为参数赋给函数,会发生什么情况?例如,如果我调用,? 有人能用一些例子解释一下函数的主要原理吗?