solkx / TOE

Apache License 2.0
10 stars 1 forks source link

几个小白问题 #3

Open nlper01 opened 1 year ago

nlper01 commented 1 year ago
        self.Cr = nn.Linear(config.cr*2, config.label_num*config.label_num)

        self.Lr_e1_rev = nn.Linear(config.label_num*config.label_num, config.lstm_hid_size)
        self.rounds = config.rounds  # TREM 迭代次数
        self.e_layer = DecoderLayer(bert_config)  # TREM 中的多头注意力机制
        self.label_num = config.label_num

        torch.nn.init.orthogonal_(self.Cr.weight, gain=1)  # 正交初始化
        torch.nn.init.orthogonal_(self.Lr_e1_rev.weight, gain=1)
        self.Lr_e1 = nn.Linear(config.lstm_hid_size, config.lstm_hid_size)
        torch.nn.init.orthogonal_(self.Lr_e1.weight, gain=1)
        self.Lr_e2 = nn.Linear(bert_config.hidden_size,bert_config.hidden_size)
        torch.nn.init.orthogonal_(self.Lr_e2.weight, gain=1)

        self.Lr_e2_rev=nn.Linear(config.label_num*config.label_num, config.lstm_hid_size)

你好,想问一下以下变量是代表什么含义,没看明白 config中的cr Lr_e1_rev /Lr_e2_rev Lr_e1/Lr_e2

以及为何要用 torch.nn.init.orthogonal_(self.Cr.weight, gain=1) # 正交初始化权重

solkx commented 1 year ago
  1. config中的cr是卷积模块输出的维度,不同空洞卷积输出的维度是不同的
  2. Lr_e1 /Lr_e2是将文本表示映射到主体和客体空间
  3. Lr_e1_rev /Lr_e2_rev是将主体和客体表示升为到原本的维度,也就是512
  4. 使用不同的初始化方法可以加快模型的收敛,具体可以在网上查阅资料