Download src/plot_scaling.py from Conditiondark/ogbench-cube-rigid-body-artifacts: direct link, hf CLI and curl.
- Browser
- Download file 1.88 kB
-
https://huggingface.co/Conditiondark/ogbench-cube-rigid-body-artifacts/resolve/main/src/plot_scaling.py
- Command line
-
hf download hf://Conditiondark/ogbench-cube-rigid-body-artifacts/src/plot_scaling.py
-
curl -L -o plot_scaling.py https://huggingface.co/Conditiondark/ogbench-cube-rigid-body-artifacts/resolve/main/src/plot_scaling.py
1.88 kB
| """Read eval.json across budgets and produce the success-vs-demos figure + table.""" | |
| import json, os, argparse | |
| import numpy as np | |
| import matplotlib; matplotlib.use("Agg") | |
| import matplotlib.pyplot as plt | |
| ap = argparse.ArgumentParser() | |
| ap.add_argument("--budgets", nargs="+", type=int, default=[10, 50, 100, 1000]) | |
| ap.add_argument("--seed", type=int, default=0) | |
| ap.add_argument("--tag", default="state") | |
| ap.add_argument("--outdir", default="results") | |
| a = ap.parse_args() | |
| os.makedirs(a.outdir, exist_ok=True) | |
| xs, ys, los, his, rows = [], [], [], [], [] | |
| for b in a.budgets: | |
| p = f"runs/gcbc_{a.tag}_b{b:04d}_seed{a.seed}/eval.json" | |
| if not os.path.exists(p): | |
| print("missing", p); continue | |
| d = json.load(open(p)); o = d["overall"] | |
| xs.append(b); ys.append(o["rate"]); los.append(o["ci"][0]); his.append(o["ci"][1]) | |
| rows.append((b, o["k"], o["n"], o["rate"], o["ci"][0], o["ci"][1])) | |
| ys = np.array(ys); los = np.array(los); his = np.array(his) | |
| plt.figure(figsize=(7, 4.5)) | |
| plt.errorbar(xs, ys, yerr=[ys - los, his - ys], fmt="o-", capsize=4, lw=2, color="#2563eb") | |
| plt.xscale("log") | |
| plt.xlabel("number of demonstrations (log scale)") | |
| plt.ylabel("online success rate") | |
| plt.title("Cube-single GCBC (state) — success vs. demonstrations\n95% Wilson CI, 50 rollouts x 5 tasks") | |
| plt.grid(True, which="both", alpha=0.3); plt.ylim(0, max(0.5, his.max() * 1.15)) | |
| plt.tight_layout() | |
| fig = os.path.join(a.outdir, f"success_vs_demos_{a.tag}.png") | |
| plt.savefig(fig, dpi=130); print("figure ->", fig) | |
| csv = os.path.join(a.outdir, f"scaling_{a.tag}.csv") | |
| with open(csv, "w") as f: | |
| f.write("demos,successes,rollouts,success_rate,ci_low,ci_high\n") | |
| for r in rows: f.write("%d,%d,%d,%.4f,%.4f,%.4f\n" % r) | |
| print("table ->", csv) | |
| print("\nDemos Success 95% Wilson CI") | |
| for b, k, n, p, lo, hi in rows: | |
| print(f"{b:5d} {p:6.1%} [{lo:.1%}, {hi:.1%}] ({k}/{n})") | |