nn.Parameter和F.linear的用法

本文详细介绍了PyTorch中nn.Parameter的作用,它用于标记需要优化的张量,并探讨了F.linear函数在神经网络层中的使用,包括输入和权重的线性变换过程,帮助读者深入理解神经网络的构建和训练流程。
摘要由CSDN通过智能技术生成
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值