dinov2
dinov2 copied to clipboard
normalize model outputs for kNN evaluation
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}