class TextRNN(nn.Module):
def __init__(self,
input_size = 768,
hidden_size = 164,
output_size = 768,
n_layers = 1,
dropout = 0.0,
args = None
):
super(TextRNN, self).__init__()
self.h0 = nn.Parameter(torch.Tensor(n_layers, hidden_size))
self.c0 = nn.Parameter(torch.Tensor(n_layers, hidden_size))
self.dropout = nn.Dropout(dropout)
self._activate = nn.Tanh()
# block input
self.Wz = nn.Parameter(torch.Tensor(input_size, hidden_size)) # [8, 768, 164]
self.Rz = nn.Parameter(torch.Tensor(hidden_size, hidden_size)) # [8, 164, 164]
self.bz = nn.Parameter(torch.Tensor(hidden_size, hidden_size)) # [8, 164, 164]
# input gate
self.Ai = nn.Parameter(torch.Tensor(input_size, hidden_size))
self.Wi = nn.Parameter(torch.Tensor(input_size, hidden_size))
self.Ri = nn.Parameter(torch.Tensor(hidden_size, hidden_size))
self.Pi = nn.Parameter(torch.Tensor(n_layers, hidden_size))
self.bi = nn.Parameter(torch.Tensor(n_layers, hidden_size))
# forget gate
# input_size = 768, hidden_size = 164
self.Af = nn.Parameter(torch.Tensor(input_size, hidden_size))
self.Wf = nn.Parameter(torch.Tensor(input_size, hidden_size))
self.Rf = nn.Parameter(torch.Tensor(hidden_size, hidden_size))
self.Pf = nn.Parameter(torch.Tensor(n_layers, hidden_size))
self.bf = nn.Parameter(torch.Tensor(n_layers, hidden_size))
# output gate
self.Ao = nn.Parameter(torch.Tensor(input_size, hidden_size))
self.Wo = nn.Parameter(torch.Tensor(input_size, hidden_size))
self.Ro = nn.Parameter(torch.Tensor(hidden_size, hidden_size))
self.Po = nn.Parameter(torch.Tensor(n_layers, hidden_size))
self.bo = nn.Parameter(torch.Tensor(n_layers, hidden_size))
def forward(self, input_ids, input_attention): # [8, 16
nn.Parameter和F.linear的用法
最新推荐文章于 2024-06-05 11:26:45 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)