MMEdit / losses /base.py
CocoBro's picture
init space
c14d03d
import torch
import torch.nn as nn
class IndentityWrapper(nn.Module):
def forward(self, loss: torch.Tensor) -> dict[str, torch.Tensor]:
return {"loss": loss}
class LossSumWrapper(nn.Module):
def __init__(self, weights: dict[str, float]):
super().__init__()
self.weights = weights
def forward(self,
loss_dict: dict[str, torch.Tensor]) -> dict[str, torch.Tensor]:
total_loss = 0
for loss_name, loss_val in loss_dict.items():
total_loss += loss_val * self.weights[loss_name]
output = {"loss": total_loss}
output.update(loss_dict)
return output