Spaces:
Build error
Build error
File size: 794 Bytes
4475241 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import torch
from torch import nn
from transformers import Trainer
class CustomTrainer(Trainer):
def compute_loss(self,model,inputs,return_outputs=False):
labels = inputs.get("labels")
# Forward Pass
outputs = model(**inputs)
logits = outputs.get("logits")
logits = logits.float()
# Compute Custom Loss
loss_fct = nn.CrossEntropyLoss(weight = torch.tensor(self.class_weights, dtype=torch.float).to(device=self.device))
loss = loss_fct(logits.view(-1, self.model.config.num_labels ),labels.view(-1))
return (loss,outputs) if return_outputs else loss
def set_class_weights(self,class_weights):
self.class_weights = class_weights
def set_device(self,device):
self.device = device |