in archs/models.py [0:0]
def score_manifold_model(self, scores, obj_truth, bias=0.0):
# put everything on CPU
scores = {k: v.cpu() for k, v in scores.items()}
obj_truth = obj_truth.cpu()
# gather scores for all relevant (a,o) pairs
scores = torch.stack(
[scores[(attr, obj)] for attr, obj in self.dset.pairs],
1) # (B, #pairs)
orig_scores = scores.clone()
mask = self.seen_mask.repeat(scores.shape[0], 1)
scores[1 - mask] += bias
results = self.generate_predictions(scores, obj_truth)
results['biased_scores'] = scores
results['scores'] = orig_scores
return results