コード例 #1
0
        self.p = nn.Softmax(dim=1)(torch.mm(self.q.t(), self.H))  # (1*m)
        self.u = torch.mul(self.p, self.H).sum(dim=1).unsqueeze(1)  # (64*1)
        # self.unit_params('R', dim=1)
        self.ans_vector = torch.mm(
            self.params['R'],
            nn.Sigmoid()(self.q + torch.mm(self.params['K'], self.u)))  # (k,1)
        self.ans = nn.LogSoftmax(dim=1)(self.ans_vector.t())
        return self.ans


#--------------------------------------------------------------------------------------------------#
#--------------------------------------------------------------------------------------------------#
#--------------------------------------------------------------------------------------------------#

model = Test_entNet_Model()
CG = graph.Computation_Graph()

fake_sentence = nn.init.normal_(torch.empty(input_size,
                                            dtype=torch.float,
                                            device='cuda'),
                                mean=0.0,
                                std=0.1)
fake_question = nn.init.normal_(torch.empty(input_size,
                                            dtype=torch.float,
                                            device='cuda'),
                                mean=0.0,
                                std=0.1)
model(fake_sentence)
# ans = model(fake_sentence, fake_question)
ans = model.answer(fake_question)
CG.recursive_loop(ans.grad_fn)
コード例 #2
0
        self.p = nn.Softmax(dim=1)(torch.mm(self.q.t(), self.H))  # (1*m)
        self.u = torch.mul(self.p, self.H).sum(dim=1).unsqueeze(1)  # (64*1)
        # self.unit_params('R', dim=1)
        self.ans_vector = torch.mm(
            self.params['R'],
            nn.Sigmoid()(self.q + torch.mm(self.params['K'], self.u)))  # (k,1)
        self.ans = nn.LogSoftmax(dim=1)(self.ans_vector.t())
        return self.ans


#--------------------------------------------------------------------------------------------------#
#--------------------------------------------------------------------------------------------------#
#--------------------------------------------------------------------------------------------------#

model = Test_entNet_Model()
CG = graph.Computation_Graph(identity_size, plot_graph=True)

fake_sentences = [
    nn.init.normal_(torch.empty(identity_size['E'],
                                dtype=torch.float,
                                requires_grad=True,
                                device='cuda'),
                    mean=0.0,
                    std=0.1).view(input_size) for _ in range(6)
]
fake_question = nn.init.normal_(torch.empty(identity_size['Q'],
                                            dtype=torch.float,
                                            requires_grad=True,
                                            device='cuda'),
                                mean=0.0,
                                std=0.1).view(input_size)