-
Notifications
You must be signed in to change notification settings - Fork 0
/
model.py
34 lines (27 loc) · 907 Bytes
/
model.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import config
import transformers
import torch.nn as nn
class BERTBaseUncased(nn.Module):
def __init__(self, DROPOUT):
super(BERTBaseUncased, self).__init__()
self.bert = transformers.BertModel.from_pretrained(config.BERT_PATH, return_dict=False)
self.bert_drop = nn.Dropout(DROPOUT)
self.out = nn.Linear(768, 3)
nn.init.xavier_uniform_(self.out.weight)
def forward(self, ids, mask, token_type_ids):
_, o2 = self.bert(
ids,
attention_mask=mask,
token_type_ids=token_type_ids
)
bo = self.bert_drop(o2)
output = self.out(bo)
return output
def extract_features(self, ids, mask, token_type_ids):
_, o2 = self.bert(
ids,
attention_mask=mask,
token_type_ids=token_type_ids
)
bo = self.bert_drop(o2)
return bo