Hi all
I just want to calculate the semantic segmentation metric values like : pixel accuracy, mIoU
and Kappa metric
and I  found some code and then I adjust it as follows:
my question is:
are these functions ok to calculate the above metric?  if not can you suggest me any thing else
from sklearn.metrics import jaccard_score,cohen_kappa_score
def pixel_accuracy(Pred, ground_truth):

with torch.no_grad():*

   Pred = torch.argmax(Pred, dim=1) #dim =1 => over rows *



   correct = torch.eq(Pred, ground_truth).int()  # the o/p here is 0 , 1 *



   accuracy = float(correct.sum()) / float(correct.numel())*


return accuracy*

def mIoU(pred, ground_truth, smooth=1e-10, n_classes=5):


with torch.no_grad():*


   # normalize the output becuse (we have identity activation functions) linear (same output)*



   pred         = torch.argmax(Pred, dim=1)*



   pred         = pred.cpu().contiguous().view(-1).numpy() # make it 1D *



   ground_truth = ground_truth.cpu().contiguous().view(-1).numpy() # make it 1D *



   MIoU=jaccard_score(ground_truth, pred,average='macro') #'none' per class *



   return MIoU*



def kapp_score_Value(pred, ground_truth):

with torch.no_grad():*

   pred              = torch.argmax(Pred, dim=1)*



   pred              = pred.cpu().contiguous().view(-1).numpy() # make it 1D *



   ground_truth      = ground_truth.cpu().contiguous().view(-1).numpy() # make it 1D *



   *



   kapp_score = cohen_kappa_score(ground_truth, pred_mask)       *



   *


return kapp_score*

*in mean code: *
*I just call them like this : *
pred = model(image)
acc = pixel_accuracy(Pred, ground_truth)
MiouVal = mIoU(Pred, ground_truth)
kappavalue = kapp_score_Value(Pred, ground_truth)