import numpy as np
def compute_iou(y_true, y_pred):
intersection = np.logical_and(y_true, y_pred)
union = np.logical_or(y_true, y_pred)
iou = np.sum(intersection) / np.sum(union)
return iou
def compute_miou(y_true, y_pred, num_classes):
iou_values = []
for class_id in range(num_classes):
true_class = (y_true == class_id)
pred_class = (y_pred == class_id)
iou = compute_iou(true_class, pred_class)
iou_values.append(iou)
mIoU = np.mean(iou_values)
return mIoU
num_classes = 3
mIoU = compute_miou(y_true, y_pred, num_classes)
print("mIoU:", mIoU)
import torch
def compute_iou(outputs, targets):
intersection = torch.logical_and(outputs, targets)
union = torch.logical_or(outputs, targets)
iou = torch.sum(intersection.float()) / torch.sum(union.float())
return iou
def compute_miou(outputs, targets, num_classes):
iou_values = []
for class_id in range(num_classes):
output_class = (outputs == class_id)
target_class = (targets == class_id)
iou = compute_iou(output_class, target_class)
iou_values.append(iou.item())
mIoU = sum(iou_values) / num_classes
return mIoU
num_classes = 3
mIoU = compute_miou(outputs, targets, num_classes)
print("mIoU:", mIoU)