Spaces:
Runtime error
Runtime error
Compute win_score and average_score
Browse files
server.py
CHANGED
@@ -90,7 +90,7 @@ class LeaderboardServer:
|
|
90 |
|
91 |
self.submission_id_to_file[submission_id] = submission_file
|
92 |
|
93 |
-
def get_leaderboard(self, tournament_results=None):
|
94 |
tournament_results = tournament_results if tournament_results else self.tournament_results
|
95 |
|
96 |
if len(tournament_results) == 0:
|
@@ -113,25 +113,44 @@ class LeaderboardServer:
|
|
113 |
raise gr.Error(f"Proper submission [{submission_id}] not found")
|
114 |
|
115 |
local_results = {}
|
|
|
116 |
visible_metrics_map_word_to_header = {}
|
117 |
for task in self.tasks_metadata.keys():
|
118 |
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
model_link = data["metadata"]["link_to_model"]
|
136 |
model_title = data["metadata"]["team_name"] + "/" + data["metadata"]["model_name"]
|
137 |
model_title_abbr = self.abbreviate(data["metadata"]["team_name"], 14) + "/" + self.abbreviate(data["metadata"]["model_name"], 14)
|
@@ -141,8 +160,7 @@ class LeaderboardServer:
|
|
141 |
local_results["release"] = release
|
142 |
local_results["model_type"] = data["metadata"]["model_type"]
|
143 |
local_results["parameters"] = data["metadata"]["parameters"]
|
144 |
-
|
145 |
-
|
146 |
if self.pre_submit and submission_id == self.pre_submit.submission_id:
|
147 |
processed_results.insert(0, local_results)
|
148 |
else:
|
|
|
90 |
|
91 |
self.submission_id_to_file[submission_id] = submission_file
|
92 |
|
93 |
+
def get_leaderboard(self, tournament_results=None, category="overall"):
|
94 |
tournament_results = tournament_results if tournament_results else self.tournament_results
|
95 |
|
96 |
if len(tournament_results) == 0:
|
|
|
113 |
raise gr.Error(f"Proper submission [{submission_id}] not found")
|
114 |
|
115 |
local_results = {}
|
116 |
+
win_score = {}
|
117 |
visible_metrics_map_word_to_header = {}
|
118 |
for task in self.tasks_metadata.keys():
|
119 |
|
120 |
+
task_category = self.tasks_metadata[task]["category"]
|
121 |
+
if category not in ("overall", task_category):
|
122 |
+
continue
|
123 |
+
else:
|
124 |
+
# tournament_results
|
125 |
+
num_of_competitors = 0
|
126 |
+
num_of_wins = 0
|
127 |
+
for competitor_id in tournament_results[submission_id].keys() - {submission_id}: # without self
|
128 |
+
num_of_competitors += 1
|
129 |
+
if tournament_results[submission_id][competitor_id][task]:
|
130 |
+
num_of_wins += 1
|
131 |
+
win_score = num_of_wins / num_of_competitors # TODO: if num_of_competitors > 0 else ???
|
132 |
+
win_score.setdefault(task_category, []).append(win_score)
|
133 |
+
|
134 |
+
if category == task_category:
|
135 |
+
local_results[task] = win_score
|
136 |
+
for metric in VISIBLE_METRICS:
|
137 |
+
visible_metrics_map_word_to_header[task + "_" + metric] = self.tasks_metadata[task]["abbreviation"] + " " + metric
|
138 |
+
metric_value = data['results'][task].get(metric)
|
139 |
+
if metric_value is not None:
|
140 |
+
local_results[task + "_" + metric] = metric_value
|
141 |
+
break # Only the first metric of every task
|
142 |
+
|
143 |
+
|
144 |
+
for c in win_score:
|
145 |
+
win_score[c] = sum(win_score[c]) / len(win_score[c])
|
146 |
+
|
147 |
+
if category == "overall":
|
148 |
+
for c in win_score:
|
149 |
+
local_results[c] = win_score[c]
|
150 |
+
local_results["average_score"] = sum(win_score[c]) / len(win_score[c])
|
151 |
+
else:
|
152 |
+
local_results["average_score"] = win_score[category]
|
153 |
+
|
154 |
model_link = data["metadata"]["link_to_model"]
|
155 |
model_title = data["metadata"]["team_name"] + "/" + data["metadata"]["model_name"]
|
156 |
model_title_abbr = self.abbreviate(data["metadata"]["team_name"], 14) + "/" + self.abbreviate(data["metadata"]["model_name"], 14)
|
|
|
160 |
local_results["release"] = release
|
161 |
local_results["model_type"] = data["metadata"]["model_type"]
|
162 |
local_results["parameters"] = data["metadata"]["parameters"]
|
163 |
+
|
|
|
164 |
if self.pre_submit and submission_id == self.pre_submit.submission_id:
|
165 |
processed_results.insert(0, local_results)
|
166 |
else:
|