hi, i have a semi - multi label problem
my specific problem is a bit different from a classic multi-label problem
i want to minimize my loss when the prediction is correct in only one class (or more)
i have a costume loss for my problem:
def new_loss_function(p, y, b):
eps = 0.000000000000000000000000001
losses = 0
k = len(y[0])
ones = torch.ones(1, 1).expand(b, k).cuda()
loss1 = -((ones-y)*(((ones-p)+(eps)).log())).sum(dim=1)
prod = (ones-y)*k - y*((p+ eps).log())
loss2 = torch.min(prod, dim=1)[0]
losses = (loss1 + loss2).sum()
return losses / b
it means, if the model was right in one class:
label = [1,1,0,0,1]
predication = [1,0,0,0,0]
in my case this is a success
im not sure how to calculate the accuracy of the model in that case