| |
| import re, matplotlib |
| matplotlib.use("Agg") |
| import matplotlib.pyplot as plt |
|
|
| ep, tr, va, tra, vaa = [], [], [], [], [] |
| pat = re.compile(r"epoch:\s*(\d+).*?train:\s*([\d.]+),\s*valid:\s*([\d.]+),\s*train_acc:\s*([\d.]+),\s*valid_acc:\s*([\d.]+)") |
| for line in open("/global/scratch/users/sergiomar10/TCera/ProteinMPNN/hf_repo/_log_snapshot.txt"): |
| m = pat.search(line) |
| if m: |
| ep.append(int(m.group(1))); tr.append(float(m.group(2))); va.append(float(m.group(3))) |
| tra.append(float(m.group(4))); vaa.append(float(m.group(5))) |
| print(f"parsed {len(ep)} epochs (last={ep[-1] if ep else None})") |
|
|
| |
| plt.figure(figsize=(7,4.5)) |
| plt.plot(ep, tr, label="train", lw=2) |
| plt.plot(ep, va, label="validation", lw=2) |
| plt.xlabel("epoch"); plt.ylabel("perplexity (loss)") |
| plt.title("ProteinMPNN-noMHC — training / validation loss") |
| plt.legend(); plt.grid(alpha=0.3); plt.tight_layout() |
| plt.savefig("/global/scratch/users/sergiomar10/TCera/ProteinMPNN/hf_repo/loss_curve.png", dpi=140) |
|
|
| |
| plt.figure(figsize=(7,4.5)) |
| plt.plot(ep, tra, label="train", lw=2) |
| plt.plot(ep, vaa, label="validation", lw=2) |
| plt.xlabel("epoch"); plt.ylabel("sequence-recovery accuracy") |
| plt.title("ProteinMPNN-noMHC — training / validation accuracy") |
| plt.legend(); plt.grid(alpha=0.3); plt.tight_layout() |
| plt.savefig("/global/scratch/users/sergiomar10/TCera/ProteinMPNN/hf_repo/accuracy_curve.png", dpi=140) |
| print("wrote loss_curve.png and accuracy_curve.png") |
|
|