dinov2 icon indicating copy to clipboard operation
dinov2 copied to clipboard

normalize model outputs for kNN evaluation

Open clemsgrs opened this issue 3 months ago • 0 comments

In the kNN evaluation code, the class probabilities retrieved from model output don't sum to 1:

https://github.com/facebookresearch/dinov2/blob/e1277af2ba9496fbadf7aec6eba56e8d882d1e35/dinov2/eval/knn.py#L192-L195

This causes issues when computing kNN metrics. I would suggest adding the following line of code to ensure probabilities sum to 1:

def forward(self, features_dict, targets):
    for k in self.keys:
        features_dict = features_dict[k]
    features_dict = features_dict / features_dict.sum(dim=-1).unsqueeze(-1)
    return {"preds": features_dict, "target": targets}

clemsgrs avatar Mar 15 '24 18:03 clemsgrs