Exemple #1
0
    def __init__(self, args, word_embeddings: TextFieldEmbedder,
                 vocab: Vocabulary) -> None:
        super().__init__(vocab)

        # parameters
        self.args = args
        self.word_embeddings = word_embeddings

        # gate
        self.x_linear = nn.Linear(self.args.embedding_size,
                                  self.args.hidden_size,
                                  bias=False)
        self.W_z = nn.Linear(self.args.hidden_size, 1, bias=False)
        self.U_z = nn.Linear(self.args.hidden_size, 1, bias=False)
        self.W_r = nn.Linear(self.args.hidden_size, 1, bias=False)
        self.U_r = nn.Linear(self.args.hidden_size, 1, bias=False)
        self.W = nn.Linear(self.args.hidden_size, 1, bias=False)
        self.U = nn.Linear(self.args.hidden_size, 1, bias=False)

        # layers
        self.event_embedding = EventEmbedding(args, self.word_embeddings)
        self.lstm = DynamicLSTM(self.args.embedding_size,
                                self.args.hidden_size,
                                num_layers=1,
                                batch_first=True)
        self.attention = Attention(self.args.hidden_size, score_function='mlp')
        self.sigmoid = Sigmoid()
        self.tanh = Tanh()
        self.score = Score(self.args.hidden_size,
                           self.args.embedding_size,
                           threshold=self.args.threshold)

        # metrics
        self.accuracy = BooleanAccuracy()
        self.f1_score = F1Measure(positive_label=1)
        self.loss_function = BCELoss()