Spaces:
Runtime error
Runtime error
| # ========================= | |
| # model.py | |
| # ========================= | |
| import torch | |
| import torch.nn as nn | |
| from transformers import AutoModel | |
| class EvidentialDeberta(nn.Module): | |
| def __init__( | |
| self, | |
| model_name="microsoft/mdeberta-v3-small", | |
| num_classes=2, | |
| dropout=0.3 | |
| ): | |
| super().__init__() | |
| self.encoder = AutoModel.from_pretrained( | |
| model_name | |
| ) | |
| hidden_size = self.encoder.config.hidden_size | |
| self.dropout = nn.Dropout(dropout) | |
| self.classifier = nn.Sequential( | |
| nn.Linear(hidden_size, 256), | |
| nn.ReLU(), | |
| nn.Dropout(dropout), | |
| nn.Linear(256, num_classes), | |
| nn.Softplus() | |
| ) | |
| def forward( | |
| self, | |
| input_ids, | |
| attention_mask | |
| ): | |
| outputs = self.encoder( | |
| input_ids=input_ids, | |
| attention_mask=attention_mask | |
| ) | |
| cls_embedding = outputs.last_hidden_state[:, 0] | |
| cls_embedding = self.dropout( | |
| cls_embedding | |
| ) | |
| evidence = self.classifier( | |
| cls_embedding | |
| ) | |
| alpha = evidence + 1 | |
| return alpha |