diff options
| author | Yuren Hao <yurenh2@illinois.edu> | 2026-07-03 05:56:50 -0500 |
|---|---|---|
| committer | Yuren Hao <yurenh2@illinois.edu> | 2026-07-03 05:56:50 -0500 |
| commit | b83947778e2c776f757a07d4719b7ce961d7ed55 (patch) | |
| tree | b9cc01d7adda691d9156d9d04f4fb2f644674e96 /scripts/plot_jr_cmp.py | |
Initial commit: ept — backprop-free equilibrium transformer (EP)
Code (ep_run/), organized docs (docs/{method,campaign,hardware,outreach,paper}),
analysis scripts (scripts/), ONBOARDING.md entry point. Large data/checkpoints
git-ignored (share separately).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FAPDWQ49M5Ye3NpTndTpn
Diffstat (limited to 'scripts/plot_jr_cmp.py')
| -rw-r--r-- | scripts/plot_jr_cmp.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/scripts/plot_jr_cmp.py b/scripts/plot_jr_cmp.py new file mode 100644 index 0000000..2f8af95 --- /dev/null +++ b/scripts/plot_jr_cmp.py @@ -0,0 +1,20 @@ +import re, matplotlib; matplotlib.use('Agg'); import matplotlib.pyplot as plt +def parse(p): + s,c,e=[],[],[] + for ln in open(p): + m=re.search(r'step\s+(\d+)/\d+ \| val CE ([\d.]+) ema=([\d.]+)', ln) + if m: s.append(int(m.group(1))); c.append(float(m.group(2))); e.append(float(m.group(3))) + return s,c,e +fz=parse('ep_run/runs/ep_resreg_warm.log'); ad=parse('ep_run/runs/ep_rr_ajr.log') +fig,ax=plt.subplots(figsize=(11,5.5),dpi=140) +for (s,c,e),col,lab in [(fz,'#4363d8','frozen jr=0.1'),(ad,'#e6194B','adaptive jacreg (jr_max=16)')]: + ax.plot(s,c,color=col,lw=0.7,alpha=0.25) + ax.plot(s,e,color=col,lw=2.3,label=lab+f' (last ema {e[-1]:.4f})') +ax.axhline(2.0,color='gray',ls='--',lw=1,alpha=0.7,label='val CE = 2.0') +ax.set_xlabel('training step'); ax.set_ylabel('val CE'); ax.set_ylim(1.92,2.6) +ax.set_title('Frozen jr vs adaptive jacreg — C512 EP, same s2000 warm-start (only jr differs)\nbold = ema, faint = raw per-log val CE', fontsize=10.5) +ax.legend(fontsize=9.5, loc='upper right'); ax.grid(alpha=0.2) +fig.tight_layout(); fig.savefig('frozen_vs_adaptive.png',dpi=140,bbox_inches='tight') +print(f"frozen: {len(fz[0])} pts, steps {fz[0][0]}-{fz[0][-1]}, best ema {min(fz[2]):.4f}") +print(f"adaptive: {len(ad[0])} pts, steps {ad[0][0]}-{ad[0][-1]}, best ema {min(ad[2]):.4f}") +print("saved") |
