File size: 1,899 Bytes
2ad7d0e
8450d10
0be77ef
a38eb6f
947ad46
b861e8e
68934cc
b861e8e
947ad46
a38eb6f
 
947ad46
a38eb6f
 
 
 
947ad46
 
a38eb6f
947ad46
a38eb6f
 
 
947ad46
a38eb6f
 
b861e8e
 
a38eb6f
 
 
 
b861e8e
2ad7d0e
a38eb6f
 
 
76d9193
a38eb6f
 
68934cc
a38eb6f
 
 
 
68934cc
a38eb6f
 
 
76d9193
a38eb6f
 
 
 
eeda69b
2ad7d0e
a38eb6f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import gradio as gr
from evo_transformer import EvoTransformer
from plot import plot_radar_chart
import io
from PIL import Image

evo = EvoTransformer()

def evolve_model(generations):
    evo.reset()
    evo.evolve(generations)

    best_config = evo.get_best_config()
    accuracy = f"{best_config['accuracy']:.2f}%"
    params = f"{best_config['parameters']:.2f}M params"
    summary = str(best_config['traits'])

    # Radar chart
    radar_img = plot_radar_chart(best_config['traits'])

    # Files
    csv_file = ("evo_history.csv", io.BytesIO(evo.export_csv().encode()))
    json_file = ("evo_history.json", io.BytesIO(evo.export_json().encode()))

    # History
    history_text = [f"Gen {i+1} Config: {c['traits']}" for i, c in enumerate(evo.history)]

    return (
        accuracy, params, summary,
        radar_img,
        *history_text,
        csv_file, json_file
    )

with gr.Blocks(title="EvoTransformer – Evolving Transformer Architectures") as demo:
    gr.Markdown("🧬 **EvoTransformer – Evolving Transformer Architectures**")
    gr.Markdown("Simulate trait mutation and adaptive architecture generation.")

    generations = gr.Slider(minimum=1, maximum=20, step=1, label="Number of Generations", value=5)
    run_btn = gr.Button("🧬 Evolve Architecture")

    acc = gr.Textbox(label="Simulated Accuracy")
    params = gr.Textbox(label="Estimated Parameters")
    summary = gr.Textbox(label="Current Config Summary")
    radar = gr.Image(label="Final Generation Trait Radar")

    history_outputs = [gr.Textbox(label=f"Gen {i+1} Config") for i in range(10)]
    csv_download = gr.File(label="Download CSV History")
    json_download = gr.File(label="Download JSON History")

    run_btn.click(
        fn=evolve_model,
        inputs=[generations],
        outputs=[acc, params, summary, radar] + history_outputs + [csv_download, json_download]
    )

demo.launch()