@register_metric("rank_response")
def rank_response(y_true, y_pred):
labels = np.array(y_true)
predictions = np.array(y_pred)
predictions = np.argsort(predictions, -1)
ranks = []
for i in range(predictions.shape[0]):
After Change
num_examples = float(len(y_pred))
predictions = np.array(y_pred)
predictions = np.flip(np.argsort(predictions, -1), -1)
rank_tot = 0
for el in predictions:
for i, x in enumerate(el):
if x == 0:
rank_tot += i
break
return float(rank_tot)/num_examples
@register_metric("r@1_insQA")
def r_at_1_insQA(y_true, y_pred):