Download examples/AutoSeg_VOC12/EntropyOptimizedAttentionNet/utils/loss.py from InternScience/InternAgent: direct link, hf CLI and curl.
- Browser
- Download file 721 Bytes
-
https://huggingface.co/InternScience/InternAgent/resolve/main/examples/AutoSeg_VOC12/EntropyOptimizedAttentionNet/utils/loss.py
- Command line
-
hf download hf://InternScience/InternAgent/examples/AutoSeg_VOC12/EntropyOptimizedAttentionNet/utils/loss.py
-
curl -L -o loss.py https://huggingface.co/InternScience/InternAgent/resolve/main/examples/AutoSeg_VOC12/EntropyOptimizedAttentionNet/utils/loss.py
721 Bytes
| import torch.nn as nn | |
| import torch.nn.functional as F | |
| import torch | |
| class FocalLoss(nn.Module): | |
| def __init__(self, alpha=1, gamma=0, size_average=True, ignore_index=255): | |
| super(FocalLoss, self).__init__() | |
| self.alpha = alpha | |
| self.gamma = gamma | |
| self.ignore_index = ignore_index | |
| self.size_average = size_average | |
| def forward(self, inputs, targets): | |
| ce_loss = F.cross_entropy( | |
| inputs, targets, reduction='none', ignore_index=self.ignore_index) | |
| pt = torch.exp(-ce_loss) | |
| focal_loss = self.alpha * (1-pt)**self.gamma * ce_loss | |
| if self.size_average: | |
| return focal_loss.mean() | |
| else: | |
| return focal_loss.sum() |