Spaces:
Sleeping
Sleeping
File size: 2,798 Bytes
0be77ef 2ad7d0e c67165f 0be77ef 8450d10 0be77ef b861e8e 0be77ef 68934cc b861e8e 0be77ef 68934cc 0be77ef 68934cc 0be77ef 68934cc 0be77ef 68934cc 0be77ef b861e8e 0be77ef b861e8e 0be77ef 68934cc 0be77ef b861e8e 2ad7d0e 0be77ef ce7f881 0be77ef 6842aeb 0be77ef 76d9193 68934cc 0be77ef 68934cc 0be77ef 76d9193 eeda69b 68934cc 0be77ef c67165f 0be77ef 68934cc eeda69b 2ad7d0e 68934cc |
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# app.py
import gradio as gr
import json
import csv
import io
from evo_transformer import EvoTransformer
from plot import plot_radar_chart
# Global instance
evo = EvoTransformer()
def evolve_model(num_generations):
evo.reset() # reset before evolution
evo.evolve(num_generations)
final_config = evo.config
history = evo.get_history()
evaluation = evo.evaluate()
# Radar Chart
try:
radar_img = plot_radar_chart(final_config)
except Exception as e:
print("Radar chart error:", e)
radar_img = None
# Prepare history display
history_cards = []
for i, h in enumerate(history):
text = f"Gen {i + 1} Config: {h}"
history_cards.append(text)
# Prepare CSV and JSON
csv_file = io.StringIO()
csv_writer = csv.DictWriter(csv_file, fieldnames=history[0].keys())
csv_writer.writeheader()
csv_writer.writerows(history)
csv_bytes = io.BytesIO(csv_file.getvalue().encode())
json_file = io.StringIO(json.dumps(history, indent=2))
json_bytes = io.BytesIO(json_file.getvalue().encode())
return (
f"{evaluation['accuracy']:.2f}%",
f"{evaluation['params']:.2f}M params",
str(final_config),
radar_img,
None, # placeholder for future diagram
*history_cards,
("evo_history.csv", csv_bytes),
("evo_history.json", json_bytes)
)
with gr.Blocks(title="🧬 EvoTransformer – Evolving Transformer Architectures") as demo:
gr.Markdown("## 🧬 EvoTransformer – Evolving Transformer Architectures\nSimulate trait mutation and adaptive architecture generation.")
with gr.Row():
num_generations = gr.Slider(minimum=1, maximum=10, value=3, label="Number of Generations", step=1)
evolve_btn = gr.Button("🧬 Evolve Architecture")
with gr.Row():
accuracy_text = gr.Textbox(label="Simulated Accuracy")
param_text = gr.Textbox(label="Estimated Parameters")
config_text = gr.Textbox(label="Current Config Summary")
gr.Markdown("## 🧬 Evolution History")
radar_output = gr.Image(label="Final Generation Trait Radar", type="pil", interactive=False)
diagram_output = gr.Image(label="Illustrative Transformer Structure", visible=False)
history_boxes = [gr.Textbox(label=f"Gen {i+1} Config") for i in range(10)]
with gr.Accordion("Downloadable Files", open=True):
csv_out = gr.File(label="Download CSV History")
json_out = gr.File(label="Download JSON History")
evolve_btn.click(
fn=evolve_model,
inputs=[num_generations],
outputs=[
accuracy_text, param_text, config_text,
radar_output, diagram_output,
*history_boxes,
csv_out, json_out
]
)
demo.launch()
|