sarcasm_detection / model.py
sivachandrakb's picture
Update model.py
c160c53 verified
Raw
History Blame Contribute Delete
1.19 kB
# =========================
# 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