Spaces:
Running
Running
import subprocess | |
import re | |
import matplotlib.pyplot as plt | |
import datetime | |
import numpy as np | |
import statistics | |
import pdb | |
import csv | |
model = [] | |
throughput = [] | |
response_length = [] | |
latency = [] | |
energy = [] | |
temp_throughput = [] | |
temp_response_length = [] | |
temp_latency = [] | |
temp_energy = [] | |
model1 = input("model 1: ") | |
model2 = input("model 2: ") | |
model3 = input("model 3: ") | |
model4 = input("model 4: ") | |
model_name = [] | |
model_name.append(model1) | |
model_name.append(model2) | |
model_name.append(model3) | |
model_name.append(model4) | |
match_name = False | |
for i in range(len(model_name)): | |
with open(model_name[i], 'r') as file: | |
model_lines = file.readlines() | |
for i in range(len(model_lines)): | |
match = re.search(r'"model":\s*"([^"]+)"', model_lines[i]) | |
match1 = re.search(r'"throughput":\s*(\d+.\d+)', model_lines[i]) | |
match2 = re.search(r'"response_length":\s*([0-9]+)', model_lines[i]) | |
match3 = re.search(r'"latency":\s*(\d+.\d+)', model_lines[i]) | |
match4 = re.search(r'"energy":\s*(\d+.\d+)', model_lines[i]) | |
if match and not match_name: | |
temp_model_name = str(match.group(1)) | |
model.append(temp_model_name.replace('--', '/')) | |
match_name = True | |
elif match1: | |
temp_throughput.append(float(match1.group(1))) | |
elif match2: | |
temp_response_length.append(float(match2.group(1))) | |
elif match3: | |
temp_latency.append(float(match3.group(1))) | |
elif match4: | |
temp_energy.append(float(match4.group(1))) | |
match_name = False | |
throughput.append(temp_throughput.copy()) | |
response_length.append(temp_response_length.copy()) | |
latency.append(temp_latency.copy()) | |
energy.append(temp_energy.copy()) | |
temp_throughput.clear() | |
temp_response_length.clear() | |
temp_latency.clear() | |
temp_energy.clear() | |
avg_throughput = [sum(row) / len(row) for row in throughput] | |
avg_response_length = [sum(row) / len(row) for row in response_length] | |
avg_latency = [sum(row) / len(row) for row in latency] | |
avg_energy = [sum(row) / len(row) for row in energy] | |
for i in range(len(model)): | |
print(model[i]) | |
print(len(throughput[i])) | |
print(len(response_length[i])) | |
print(len(latency[i])) | |
print(len(energy[i])) | |
csv_file = "leaderboard.csv" | |
with open(csv_file, "w", newline="") as file: | |
writer = csv.writer(file) | |
writer.writerow(["model","throughput","response_length","latency","energy"]) | |
for i in range(len(model)): | |
writer.writerow([model[i], avg_throughput[i], avg_response_length[i], avg_latency[i], avg_energy[i]]) | |