torch.nn.GRU详解代码

小白撸代码

import torch.nn as nn
import torch
from torch.autograd import Variable
# 输入是中 输入10个特征维度 隐藏是20个特征维度(输入是10列   输出是20列)一共是 2层
rnn = nn.GRU(10,20,2)
# print(rnn,"#####################")

# 输入 一个矩阵中含有5个矩阵  每个矩阵中是3行10列 10列是GRU格式中的10列
input = Variable(torch.randn(5,3,10))
#print(input,"++++++++++++++++++++++++")

#保存着batch中每个元素的初始化隐状态的Tensor
# 其中2是GRU中 公有的2层 3行要跟输入中的3行要相等的行数
h0 = Variable(torch.randn(2,3,20))
# print(h0,"@@@@@@@@@@@@@@@@@@@@@@")

#output保存RNN最后一层的输出的Tensor。
#hn保存着RNN最后一个时间步的隐状态。
output , hn = rnn(input,h0)
print(output)
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`torch.nn.GRU` 是 PyTorch 中的一个循环神经网络(Recurrent Neural Network, RNN)模块,用于实现长短期记忆(Gated Recurrent Unit, GRU)模型。 GRU 是一种常用的循环神经网络模型,它通过门控机制来控制信息的流动和记忆。与传统的循环神经网络相比,GRU 具有更强的建模能力和更好的梯度传播性质。 可以通过创建 `torch.nn.GRU` 的实例来使用 GRU 模型。下面是一个简单的示例代码: ```python import torch import torch.nn as nn input_size = 100 hidden_size = 50 num_layers = 2 # 创建一个 GRU 模型 gru = nn.GRU(input_size, hidden_size, num_layers) # 定义输入数据 input = torch.randn(10, 32, input_size) # 输入序列长度为 10,批次大小为 32 # 初始化隐藏状态 h0 = torch.randn(num_layers, 32, hidden_size) # 隐藏状态的形状为 (num_layers, batch_size, hidden_size) # 前向传播 output, hn = gru(input, h0) ``` 在上述代码中,我们首先创建了一个 `nn.GRU` 的实例 `gru`,并指定了输入大小 `input_size`、隐藏状态大小 `hidden_size` 和堆叠层数 `num_layers`。然后,我们定义了一个大小为 10x32x100 的输入张量 `input`,其中 10 表示序列长度,32 表示批次大小,100 表示输入特征维度。接下来,我们初始化了隐藏状态 `h0`,其形状为 (2, 32, 50)。最后,我们通过调用 `gru` 对输入进行前向传播,得到输出 `output` 和最后一个时间步的隐藏状态 `hn`。 `torch.nn.GRU` 还提供了许多其他的参数和方法,如双向 GRU、批次优先模式、自定义初始权重等。通过这些功能,我们可以方便地构建和训练 GRU 模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值