def DC()

in src/utils/metrics.py [0:0]


def DC(alphas, dataset='coco'):

    if dataset == 'coco':
        cms = np.array([
            703, 15100., 22519., 15179., 8853., 5334., 3025., 1803., 971., 541., 280., 145, 69, 32, 11,
            7, 2, 0, 1, 0, 0
        ])

    elif dataset == 'voc':
        cms = np.array(
            [2538., 1479., 386., 91., 10., 4., 1., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

    elif dataset == 'ade20k':
        cms = np.array([
            104., 507., 1177., 1747., 1909., 1926., 1765., 1646., 1468., 1289., 1111, 874, 624, 579,
            416, 258, 226, 159, 113, 95, 64, 48, 27, 21, 8, 9, 4, 1, 0, 0, 1
        ])

    elif dataset == 'recipe1m':
        cms = np.array([
            0.0000e+00, 1.1570e+04, 2.7383e+04, 4.5583e+04, 6.2422e+04, 7.2228e+04, 7.6909e+04,
            7.6319e+04, 7.0102e+04, 5.9216e+04, 4.6648e+04, 3.4192e+04, 2.3283e+04, 1.5590e+04,
            1.0079e+04, 6.2400e+03, 3.7690e+03, 2.2110e+03, 1.3430e+03, 2.7000e+01
        ])

    else:
        cms = np.array([
            36340, 42824., 28406., 17843., 11093., 6550., 3564., 1768., 647., 164., 40., 3, 2, 0, 0, 0, 0,
            0, 0, 0, 0
        ])

    cms = cms[0:alphas.size(-1)]
    c = sum(cms)

    cms = torch.from_numpy(cms)

    cms = cms.unsqueeze(0).to(device).float()

    num = alphas + cms

    den = (torch.sum(alphas, dim=-1) + c).unsqueeze(1)

    dc_alphas = num / den

    return dc_alphas