Spaces:
Sleeping
Sleeping
| import torch | |
| import torch.nn.functional as F | |
| __all__ = ['kl_loss', 'huber_loss'] | |
| def kl_loss(x, y): | |
| x = F.softmax(x.detach(), dim=1) | |
| y = F.log_softmax(y, dim=1) | |
| return torch.mean(torch.sum(x * (torch.log(x) - y), dim=1)) | |
| def huber_loss(error, delta): | |
| abs_error = torch.abs(error) | |
| quadratic = torch.min(abs_error, torch.full_like(abs_error, fill_value=delta)) | |
| losses = 0.5 * (quadratic ** 2) + delta * (abs_error - quadratic) | |
| return torch.mean(losses) | |