HemanM commited on
Commit
b9e3604
·
verified ·
1 Parent(s): 10054c3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -59
app.py CHANGED
@@ -29,66 +29,46 @@ csv_btn = gr.File(label="Download CSV History")
29
  json_btn = gr.File(label="Download JSON History")
30
 
31
  # === Helper: Create Evolution Radar Plot ===
32
- def plot_radar(history):
33
- import numpy as np
34
-
35
- traits = ["layers", "attention_heads", "ffn_dim", "dropout", "memory"]
36
- N = len(traits)
37
- values = [history[-1].get(t, 0) for t in traits]
38
- values = [int(v) if isinstance(v, bool) else v for v in values]
39
-
40
- angles = np.linspace(0, 2 * np.pi, N, endpoint=False).tolist()
41
- values += values[:1]
42
- angles += angles[:1]
43
-
44
- fig, ax = plt.subplots(figsize=(5, 5), subplot_kw=dict(polar=True))
45
- ax.plot(angles, values, "o-", linewidth=2)
46
- ax.fill(angles, values, alpha=0.25)
47
- ax.set_thetagrids([a * 180 / np.pi for a in angles[:-1]], traits)
48
- ax.set_title("Last Gen Trait Radar", fontsize=14)
49
- plt.tight_layout()
50
-
51
- tmp = tempfile.NamedTemporaryFile(suffix=".png", delete=False)
52
- plt.savefig(tmp.name)
53
- plt.close()
54
- return tmp.name
55
-
56
- radar_plot = gr.Image(label="Final Generation Trait Radar")
57
-
58
- # === Main Evolution Logic ===
59
  def evolve_and_display(gens):
60
- model.evolve(generations=gens)
61
- history = model.get_history()
62
- eval_result = model.evaluate()
63
-
64
- # Format summary
65
- summary = "\n".join([f"{k}: {v}" for k, v in history[-1].items()])
66
-
67
- # Fill up to 10 generations of history for display
68
- history_txt = [json.dumps(h, indent=2) for h in history]
69
- while len(history_txt) < 10:
70
- history_txt.append("")
71
-
72
- # Generate CSV + JSON
73
- df = pd.DataFrame(history)
74
- csv_path = tempfile.NamedTemporaryFile(suffix=".csv", delete=False).name
75
- json_path = tempfile.NamedTemporaryFile(suffix=".json", delete=False).name
76
- df.to_csv(csv_path, index=False)
77
- with open(json_path, "w") as jf:
78
- json.dump(history, jf, indent=2)
79
-
80
- # Plot radar
81
- radar_img = plot_radar(history)
82
-
83
- return (
84
- f"{eval_result['accuracy']*100:.2f}%",
85
- f"{eval_result['params']:.2f}M params",
86
- summary,
87
- *history_txt,
88
- radar_img,
89
- csv_path,
90
- json_path,
91
- )
 
 
 
 
 
 
 
92
 
93
  # === Interface Layout ===
94
  with gr.Blocks(title="EvoTransformer Demo") as demo:
 
29
  json_btn = gr.File(label="Download JSON History")
30
 
31
  # === Helper: Create Evolution Radar Plot ===
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  def evolve_and_display(gens):
33
+ try:
34
+ model.evolve(generations=gens)
35
+ history = model.get_history()
36
+ eval_result = model.evaluate()
37
+
38
+ summary = "\n".join([f"{k}: {v}" for k, v in history[-1].items()])
39
+ history_txt = [json.dumps(h, indent=2) for h in history]
40
+ while len(history_txt) < 10:
41
+ history_txt.append("")
42
+
43
+ # Save CSV and JSON
44
+ df = pd.DataFrame(history)
45
+ csv_path = tempfile.NamedTemporaryFile(suffix=".csv", delete=False).name
46
+ json_path = tempfile.NamedTemporaryFile(suffix=".json", delete=False).name
47
+ df.to_csv(csv_path, index=False)
48
+ with open(json_path, "w") as jf:
49
+ json.dump(history, jf, indent=2)
50
+
51
+ radar_img = plot_radar(history)
52
+
53
+ return (
54
+ f"{eval_result['accuracy']*100:.2f}%",
55
+ f"{eval_result['params']:.2f}M params",
56
+ summary,
57
+ *history_txt,
58
+ radar_img,
59
+ csv_path,
60
+ json_path,
61
+ )
62
+ except Exception as e:
63
+ print("🚨 ERROR during evolution:", str(e))
64
+ import traceback
65
+ traceback.print_exc()
66
+
67
+ return (
68
+ "Error", "Error", "Error",
69
+ *["Error"] * 10,
70
+ None, None, None
71
+ )
72
 
73
  # === Interface Layout ===
74
  with gr.Blocks(title="EvoTransformer Demo") as demo: