def __init__(self, config, ft, num_labels, res, H, device_num):
     super(BertGAT, self).__init__(config)
     self.device = torch.device('cuda:' + device_num)
     self.bert = BertModel.from_pretrained('bert-base-uncased')
     self.dropout = nn.Dropout(0.5)
     self.ft = ft
     self.num_labels = num_labels
     self.gat = SpGAT(nfeat=H.shape[1], nclass=num_labels).to(self.device)
     self.FCN = nn.Linear(768, num_labels)
     self.softmax = nn.Softmax()
     self.H = torch.tensor(H).float().to(self.device)
     A = torch.tensor(gen_A(num_labels, res)).float().to(self.device)
     self.adj = gen_adj(A).detach()
     # self.FCN2 = nn.Linear(num_labels, num_labels)
     self.apply(self.init_bert_weights)
 def __init__(self, config, ft, num_labels, res, H, device_num):
     super(BertGCN, self).__init__(config)
     self.device = torch.device('cuda:' + device_num)
     self.bert = BertModel.from_pretrained('bert-base-uncased')
     self.dropout = nn.Dropout(0.5)
     self.H = get_tensor(H, self.device)
     self.ft = ft
     self.num_labels = num_labels
     self.FCN = nn.Linear(768, num_labels)
     self.softmax = nn.Softmax(dim=1)
     self.apply(self.init_bert_weights)
     self.gcn_weight1 = Parameter(torch.Tensor(H.shape[1], 1500))
     self.gcn_weight2 = Parameter(torch.Tensor(1500, 768))
     self.lkrelu = nn.LeakyReLU(0.2)
     self.A = torch.tensor(gen_A(num_labels, res)).float().to(self.device)
     # self.A = Parameter(torch.from_numpy(gen_A(num_labels, res)).float()).to(self.device)
     self.adj = gen_adj(self.A).detach()
    def __init__(self, config, ft, num_labels, H, device_num, C, c_adj):
        super(BertGCN_Cluster, self).__init__(config)
        self.device = torch.device('cuda:' + device_num)
        self.bert = BertModel.from_pretrained('bert-base-uncased')
        self.dropout = nn.Dropout(0.5)
        self.ft = ft
        self.H = get_tensor(H, self.device)  # m * 3072
        self.C = get_tensor(C, self.device)  # m * C
        self.c_adj = gen_adj(get_tensor(c_adj, self.device)).detach()  # C * C
        self.num_labels = num_labels
        self.FCN = nn.Linear(768, num_labels)
        self.actv = nn.LeakyReLU(0.2)
        # self.actv = nn.Tanh()
        self.softmax = nn.Softmax(dim=1)
        self.apply(self.init_bert_weights)

        self.W1 = Parameter(torch.Tensor(H.shape[1], 768))
        self.W2 = Parameter(torch.Tensor(768, 768))