Update neurogolf_solver.py
Browse files- neurogolf_solver.py +13 -8
neurogolf_solver.py
CHANGED
|
@@ -976,7 +976,9 @@ def solve_task(tn, td, outdir, conv_budget=30.0):
|
|
| 976 |
|
| 977 |
def run_tasks(task_nums, tasks, output_dir, conv_budget, use_wandb):
|
| 978 |
results = {}
|
| 979 |
-
|
|
|
|
|
|
|
| 980 |
for tn in task_nums:
|
| 981 |
if tn not in tasks:
|
| 982 |
continue
|
|
@@ -991,13 +993,15 @@ def run_tasks(task_nums, tasks, output_dir, conv_budget, use_wandb):
|
|
| 991 |
macs, memory, params = 0, 0, 0
|
| 992 |
except:
|
| 993 |
macs, memory, params = 0, 0, 0
|
| 994 |
-
|
|
|
|
|
|
|
| 995 |
|
| 996 |
results[tn] = (sname, t_task, sz)
|
| 997 |
-
print(f"Task {tn:3d}: {sname:25s} {score:>12} {t_task:7.3f}s ({sz:>8,} bytes)")
|
| 998 |
else:
|
| 999 |
print(f"Task {tn:3d}: UNSOLVED {t_task:7.3f}s")
|
| 1000 |
-
macs, memory, params,
|
| 1001 |
|
| 1002 |
if use_wandb and wandb is not None:
|
| 1003 |
wandb.log({
|
|
@@ -1008,10 +1012,11 @@ def run_tasks(task_nums, tasks, output_dir, conv_budget, use_wandb):
|
|
| 1008 |
"macs": macs,
|
| 1009 |
"memory": memory,
|
| 1010 |
"params": params,
|
|
|
|
| 1011 |
"score": score,
|
| 1012 |
})
|
| 1013 |
|
| 1014 |
-
return results
|
| 1015 |
|
| 1016 |
|
| 1017 |
def main():
|
|
@@ -1052,9 +1057,9 @@ def main():
|
|
| 1052 |
name="solver_run",
|
| 1053 |
config=config,
|
| 1054 |
):
|
| 1055 |
-
results = run_tasks(task_nums, tasks, args.output_dir, args.conv_budget, use_wandb=True)
|
| 1056 |
else:
|
| 1057 |
-
results = run_tasks(task_nums, tasks, args.output_dir, args.conv_budget, use_wandb=False)
|
| 1058 |
|
| 1059 |
elapsed = time.time() - t0
|
| 1060 |
print(f"\n{'='*70}")
|
|
@@ -1065,7 +1070,7 @@ def main():
|
|
| 1065 |
n_files = len([f for f in os.listdir(args.output_dir) if f.endswith('.onnx')])
|
| 1066 |
total_size = sum(os.path.getsize(os.path.join(args.output_dir, f))
|
| 1067 |
for f in os.listdir(args.output_dir) if f.endswith('.onnx'))
|
| 1068 |
-
print(f"\n{n_files} ONNX files, total {total_size/1024:.1f} KB")
|
| 1069 |
|
| 1070 |
if __name__ == '__main__':
|
| 1071 |
main()
|
|
|
|
| 976 |
|
| 977 |
def run_tasks(task_nums, tasks, output_dir, conv_budget, use_wandb):
|
| 978 |
results = {}
|
| 979 |
+
cost = 0
|
| 980 |
+
score = 0
|
| 981 |
+
total_score = 0
|
| 982 |
for tn in task_nums:
|
| 983 |
if tn not in tasks:
|
| 984 |
continue
|
|
|
|
| 993 |
macs, memory, params = 0, 0, 0
|
| 994 |
except:
|
| 995 |
macs, memory, params = 0, 0, 0
|
| 996 |
+
cost = macs + memory + params
|
| 997 |
+
score = max(1, 25 - math.log(max(1, cost)))
|
| 998 |
+
total_score += score
|
| 999 |
|
| 1000 |
results[tn] = (sname, t_task, sz)
|
| 1001 |
+
print(f"Task {tn:3d}: {sname:25s} {score:7.3f} {cost:>12} {t_task:7.3f}s ({sz:>8,} bytes)")
|
| 1002 |
else:
|
| 1003 |
print(f"Task {tn:3d}: UNSOLVED {t_task:7.3f}s")
|
| 1004 |
+
macs, memory, params, cost = 0, 0, 0, 0
|
| 1005 |
|
| 1006 |
if use_wandb and wandb is not None:
|
| 1007 |
wandb.log({
|
|
|
|
| 1012 |
"macs": macs,
|
| 1013 |
"memory": memory,
|
| 1014 |
"params": params,
|
| 1015 |
+
"cost": cost,
|
| 1016 |
"score": score,
|
| 1017 |
})
|
| 1018 |
|
| 1019 |
+
return results, total_score
|
| 1020 |
|
| 1021 |
|
| 1022 |
def main():
|
|
|
|
| 1057 |
name="solver_run",
|
| 1058 |
config=config,
|
| 1059 |
):
|
| 1060 |
+
results, total_score = run_tasks(task_nums, tasks, args.output_dir, args.conv_budget, use_wandb=True)
|
| 1061 |
else:
|
| 1062 |
+
results, total_score = run_tasks(task_nums, tasks, args.output_dir, args.conv_budget, use_wandb=False)
|
| 1063 |
|
| 1064 |
elapsed = time.time() - t0
|
| 1065 |
print(f"\n{'='*70}")
|
|
|
|
| 1070 |
n_files = len([f for f in os.listdir(args.output_dir) if f.endswith('.onnx')])
|
| 1071 |
total_size = sum(os.path.getsize(os.path.join(args.output_dir, f))
|
| 1072 |
for f in os.listdir(args.output_dir) if f.endswith('.onnx'))
|
| 1073 |
+
print(f"\n{n_files} ONNX files, Total local estimated score: {total_score:.1f} total {total_size/1024:.1f} KB")
|
| 1074 |
|
| 1075 |
if __name__ == '__main__':
|
| 1076 |
main()
|