I bit confuse how to calculate IoU score and dice for multi class segmentation, is my code valid for multi-class?
def IoU_score(inputs, targets, num_classes=23, smooth=1e-5):
    with torch.no_grad():
        #soft = nn.Softmax2d()
        inputs = F.softmax(inputs, dim=1) #convert into probabilites 0-1
        targets = F.one_hot(targets, num_classes = n_classes).permute(0,3,1,2).contiguous()#convert target into one-hot


        inputs = inputs.contiguous().view(-1)
        targets = targets.view(-1)

        intersection = (inputs * targets).sum()
        total = (inputs + targets).sum()
        union = total - intersection 

        IoU = (intersection + smooth)/(union + smooth)
        
        return IoU.item()