kdqemre commited on
Commit
0f1d0ae
·
verified ·
1 Parent(s): 780a490

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +85 -3
app.py CHANGED
@@ -1,7 +1,89 @@
 
 
 
1
  import gradio as gr
2
 
3
- def greet(name):
4
- return "Hello " + name + "!!"
 
 
5
 
6
- demo = gr.Interface(fn=greet, inputs="text", outputs="text")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  demo.launch()
 
1
+ import numpy as np
2
+ import matplotlib.pyplot as plt
3
+ import networkx as nx
4
  import gradio as gr
5
 
6
+ # Başlangıçta nöron sayıları
7
+ input_size = 3
8
+ hidden_size = 4
9
+ output_size = 2
10
 
11
+ # Grafik için boş bir yönlendirilmiş grafik oluşturma
12
+ G = nx.DiGraph()
13
+
14
+ # Nöronları güncelleme ve grafik oluşturma
15
+ def update_graph(input_size, hidden_size, output_size):
16
+ # Integer türüne dönüştür
17
+ input_size = int(input_size)
18
+ hidden_size = int(hidden_size)
19
+ output_size = int(output_size)
20
+
21
+ # Ağı temizle
22
+ G.clear()
23
+
24
+ # Giriş katmanı nöronları
25
+ for i in range(input_size):
26
+ G.add_node(f'I{i}', layer='input')
27
+
28
+ # Gizli katman nöronları
29
+ for i in range(hidden_size):
30
+ G.add_node(f'H{i}', layer='hidden')
31
+
32
+ # Çıkış katmanı nöronları
33
+ for i in range(output_size):
34
+ G.add_node(f'O{i}', layer='output')
35
+
36
+ # Giriş katmanından gizli katmana bağlantılar
37
+ for i in range(input_size):
38
+ for j in range(hidden_size):
39
+ G.add_edge(f'I{i}', f'H{j}', weight=np.random.rand())
40
+
41
+ # Gizli katmandan çıkış katmanına bağlantılar
42
+ for j in range(hidden_size):
43
+ for k in range(output_size):
44
+ G.add_edge(f'H{j}', f'O{k}', weight=np.random.rand())
45
+
46
+ # Nöronların pozisyonlarının hesaplanması
47
+ pos = {}
48
+
49
+ # Giriş katmanı pozisyonları
50
+ for i in range(input_size):
51
+ pos[f'I{i}'] = (0, 1 - (i / (input_size - 1))) # Dikey olarak yerleştir
52
+
53
+ # Gizli katman pozisyonları
54
+ for i in range(hidden_size):
55
+ pos[f'H{i}'] = (1, 1 - (i / (hidden_size - 1))) # Dikey olarak yerleştir
56
+
57
+ # Çıkış katmanı pozisyonları
58
+ for i in range(output_size):
59
+ pos[f'O{i}'] = (2, 1 - (i / (output_size - 1))) # Dikey olarak yerleştir
60
+
61
+ # Kenar ağırlıklarının görselleştirilmesi
62
+ edges = G.edges(data=True)
63
+
64
+ # Ağı görselleştirme
65
+ plt.figure(figsize=(10, 6))
66
+ nx.draw(G, pos, with_labels=True, node_size=2000, node_color='skyblue', font_size=12, font_weight='bold', arrows=True)
67
+ nx.draw_networkx_edge_labels(G, pos, edge_labels={(u, v): f'{d["weight"]:.2f}' for u, v, d in edges})
68
+ plt.title("MLP Modelinin Görselleştirilmesi", fontsize=16)
69
+ plt.axis('off') # Eksenleri kapat
70
+ plt.tight_layout() # Düzeni ayarla
71
+
72
+ return plt
73
+
74
+ # Gradio arayüzü tanımlama
75
+ with gr.Blocks() as demo:
76
+ gr.Markdown("### MLP Modeli Görselleştirici")
77
+
78
+ input_slider = gr.Slider(minimum=1, maximum=10, value=input_size, label="Giriş Katmanı Nöron Sayısı")
79
+ hidden_slider = gr.Slider(minimum=1, maximum=10, value=hidden_size, label="Gizli Katman Nöron Sayısı")
80
+ output_slider = gr.Slider(minimum=1, maximum=10, value=output_size, label="Çıkış Katmanı Nöron Sayısı")
81
+
82
+ output_plot = gr.Plot(label="MLP Model Grafiği")
83
+
84
+ update_button = gr.Button("Güncelle")
85
+
86
+ update_button.click(fn=update_graph, inputs=[input_slider, hidden_slider, output_slider], outputs=output_plot)
87
+
88
+ # Uygulamayı çalıştırma
89
  demo.launch()