submission_code/best_util.py [12:39]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
class BertClassifier(nn.Module):
    def __init__(self, config, pad_id, num_classes):
        super(BertClassifier, self).__init__()
        
        bert_config = BertConfig(
            vocab_size=config.src_vocab_size,
            hidden_size=config.h_size,
            num_hidden_layers=config.n_layers,
            num_attention_heads=config.n_heads,
            intermediate_size=config.d_ff,
            hidden_dropout_prob = config.dropout,
            pad_token_id=pad_id,
        )
        self.tr = BertModel(config=bert_config)
        self.drop = nn.Dropout(config.dropout)
        self.out = nn.Linear(config.h_size, num_classes)
        
    def forward(self, x):
        attn = (x != 0).float()
        x = self.tr(
            input_ids=x,
            attention_mask=attn,
            return_dict=True
        )
        x = x.last_hidden_state.mean(dim=1)
        x = self.drop(x)
        x = self.out(x)
        return x
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



submission_code/tools.py [119:146]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
class BertClassifier(nn.Module):
    def __init__(self, config, pad_id, num_classes):
        super(BertClassifier, self).__init__()

        bert_config = BertConfig(
            vocab_size=config.src_vocab_size,
            hidden_size=config.h_size,
            num_hidden_layers=config.n_layers,
            num_attention_heads=config.n_heads,
            intermediate_size=config.d_ff,
            hidden_dropout_prob = config.dropout,
            pad_token_id=pad_id,
        )
        self.tr = BertModel(config=bert_config)
        self.drop = nn.Dropout(config.dropout)
        self.out = nn.Linear(config.h_size, num_classes)

    def forward(self, x):
        attn = (x != 0).float()
        x = self.tr(
            input_ids=x,
            attention_mask=attn,
            return_dict=True
        )
        x = x.last_hidden_state.mean(dim=1)
        x = self.drop(x)
        x = self.out(x)
        return x
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



