我的用例与此示例几乎相同:
from torchmetrics import JaccardIndex
import torch
pred = torch.tensor([1, 2, 19, 17, 17])
target = torch.tensor([1, 2, 3, 17, 4])
jaccard = JaccardIndex(num_classes=21)
jaccard(pred, pred)
Out: tensor([0., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.,
0., 1., 0.])
当存在不存在的类时,如何正确计算 pred 和 target 之间的 mIoU?换句话说,我不希望它简单地将零分配给测试数据集中不存在的类。此外,只有当它确实是一个错误的预测时,我们才需要考虑零,而不是一个缺席的类。
您可以在此处使用 DeepLabV3Plus 指标类。
metric = StreamSegMetrics(n_classes)
for batch_idx, _ in enumerate(self.loader_val.Loader):
metric.update(label_trues, label_preds) # update every iterations
metrics_out = metric.get_results()