def test_soft_jaccard_score(): input_good = torch.Tensor([1, 0, 1]).float() input_bad = torch.Tensor([0, 0, 0]).float() target = torch.Tensor([1, 0, 1]) eps = 1e-5 jaccard_good = F.soft_jaccard_score(input_good, target, smooth=eps) assert float(jaccard_good) == pytest.approx(1.0, eps) jaccard_bad = F.soft_jaccard_score(input_bad, target, smooth=eps) assert float(jaccard_bad) == pytest.approx(0.0, eps)
def test_soft_jaccard_score_2(y_true, y_pred, expected, eps): y_true = torch.tensor(y_true, dtype=torch.float32) y_pred = torch.tensor(y_pred, dtype=torch.float32) actual = F.soft_jaccard_score(y_pred, y_true, dims=[1], eps=eps) actual = actual.mean() assert float(actual) == pytest.approx(expected, eps)