HemanM's picture
Update app.py
a38eb6f verified
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()