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()