File size: 778 Bytes
65bd8af |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
from scipy.stats import norm
import numpy as np
import os
def score(outputs):
weight = 0.03
binding_size_dist = np.load(os.path.join(os.path.dirname(__file__), "../params/binding_size_train_dist.npy"))
mean = np.mean(binding_size_dist)
std = np.std(binding_size_dist)
dist = norm(mean, std)
max_score = 0
scores = np.exp(outputs[0])[:, 1]
indices = np.argsort(-1*scores)
for j in range(1, len(indices)):
score = (1-weight)*np.mean(scores[indices[:j]]) + weight*(dist.pdf(j/len(indices)))
if score > max_score:
max_score = score
return max_score
|