pytorch笔记:torch.nn.GRU

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytorch笔记:torch.nn.GRU相关的知识,希望对你有一定的参考价值。

1 函数介绍

        对于输入序列中的每个元素,每一层计算以下函数:

其中是在t时刻的隐藏状态,是在t时刻的输入。σ是sigmoid函数,*是逐元素的哈达玛积

        对于多层GRU 第l层的输入(l≥2)是之前一层的隐藏状态,乘以dropout 

2 输入参数介绍

input_size输入特征的大小
hidden_size隐藏层h特征的大小
num_layers

GRU层数。

        例如,设置 num_layers=2 意味着将两个 GRU 堆叠在一起形成一个堆叠的 GRU,第二个 GRU 接收第一个 GRU 的输出并计算最终结果。

默认值:1

bias

默认值True

上式的那些b是否为0,如果是False的话,那么这些b就都是0

batch_first

如果为 True,则输入和输出Tensor的维度为 (batch, seq, feature) 而不是 (seq, batch, feature)。

默认值:False

dropout

如果非零,则在除最后一层之外的每个 GRU 层的输出上引入一个 Dropout 层,dropout 概率等于 dropout。

默认值:0

bidirectional

如果是True,那么就变成双向GRU

默认值:False

3 使用举例

 3.1 输入tensor的维度

          input:当batch_first=False的时候,维度为;否则是

        h_0: 

3.2 输出tensor的维度

        output:当batch_first=False的时候,维度为;否则是

        h_n:

3.3 实例说明

import torch

GRU=torch.nn.GRU(input_size=10,
                 hidden_size=20,
                 num_layers=20)

input_tensor=torch.randn(5,3,10)
'''
输入的sequence长5
batch_size为3
输入sequence每一个元素的维度为10
'''
h0=torch.randn(1*20,3,20)
'''
第一个参数:单方向GRU(1),20层GRU(20)
第二个参数:batch_size
第三个参数:hidden_size的大小
'''
output,hn=GRU(input_tensor,h0)
output.shape,hn.shape
#(torch.Size([5, 3, 20]), torch.Size([20, 3, 20]))

 

以上是关于pytorch笔记:torch.nn.GRU的主要内容,如果未能解决你的问题,请参考以下文章

[Pytorch系列-54]:循环神经网络 - torch.nn.GRU()参数详解

PyTorch笔记 - GRU(Gated Recurrent Unit)

PyTorch笔记 - GRU(Gated Recurrent Unit)网络结构

PyTorch笔记 - GRU(Gated Recurrent Unit)网络结构

未设置标题的文章

瑜伽学院 解密瑜伽6种常见分类