in parse.py [0:0]
def format_time_results(df_all_epochs, unique_run_id):
time_delta = df_all_epochs.groupby(unique_run_id)["time"].diff() * 60
time_delta = time_delta[
time_delta > 0
] # Remove negative values coming from preemption
total_time = time_delta.sum().item()
print("Total compute time : " + str(total_time))
time_result = time_delta.groupby(["dataset", "method", "#HP", "Groups"]).median()
average = (
time_result.groupby(["method", "#HP", "Groups"]).mean().to_frame("Average")
)
time_result = time_result.unstack("dataset").sort_index(level="Groups")
time_result = time_result.join(average).apply(lambda x: x.map("{:.2f}".format))
print(time_result)
time_result.to_latex(
"tables/result_time_h.tex", escape=False, multirow=True, multicolumn=True
)
sns.set(style="whitegrid", context="talk")
g = sns.catplot(
data=time_delta.to_frame("time").reset_index(),
x="method",
y="time",
col="dataset",
kind="box",
sharex=True,
sharey=False,
height=6,
col_wrap=2,
)
for ax in g.fig.axes:
ax.set_yscale("log")
ax.tick_params(axis="x", labelrotation=45)
g.set_axis_labels("Method", "Time per epoch in minutes")
g.set_titles(col_template="{col_name}")
g.tight_layout()
plt.savefig(f"figures/time_per_epoch.pdf", dpi=300)
plt.savefig(f"figures/time_per_epoch.png", dpi=300)