torch.nn.GRU()
时间: 2023-09-10 07:09:34 浏览: 193
`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 模型。
阅读全文