Spaces:
Sleeping
Sleeping
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() | |