3
3
import streamlit as st
4
4
from neuralnet_visualize import visualize as nnviz
5
5
6
+ LAYER_PARAMS = {'layer_type' : ['dense' , 'conv2d' , 'maxpool2d' , 'avgpool2d' , 'flatten' ], 'nodes' : [1 ], 'filters' : [1 ], 'kernel_size' : [1 , 15 ], 'padding' : ['same' , 'valid' ], 'stride' : [1 , 15 ], 'pool_size' : [1 , 15 ]}
7
+
8
+ # Setting page configurations
9
+ st .beta_set_page_config (page_title = "Neural Network Visualizer Playground" )
10
+
6
11
st .title ("Interactive Playground" )
7
12
13
+ number = st .number_input ('Number of Layers' , min_value = 2 , max_value = 20 )
14
+
15
+ @st .cache (allow_output_mutation = True )
16
+ def give_empty_params_list (number ):
17
+ list_of_dicts = [dict () for _ in range (number )]
18
+
19
+ return list_of_dicts
20
+
21
+ params_list = give_empty_params_list (number )
22
+
23
+ layer_num = st .selectbox ("Layer Number" , options = ['Layer ' + str (n ) for n in range (1 , number + 1 )])
24
+
25
+ st .sidebar .title ("{} Parameters" .format (layer_num ))
26
+ for name , value in LAYER_PARAMS .items ():
27
+ if isinstance (value [0 ], int ) and len (value ) == 1 :
28
+ params_list [int (layer_num [- 1 ])- 1 ][name ] = st .sidebar .number_input (label = name , min_value = value [0 ])
29
+ elif isinstance (value [0 ], int ) and len (value ) == 2 :
30
+ params_list [int (layer_num [- 1 ])- 1 ][name ] = st .sidebar .number_input (label = name , min_value = value [0 ], max_value = value [1 ])
31
+ else :
32
+ params_list [int (layer_num [- 1 ])- 1 ][name ] = st .sidebar .selectbox (label = name , options = value )
33
+
8
34
net = nnviz .visualizer ()
9
35
10
- net . add_layer ( 'dense' , 5 )
11
- net . add_layer ( 'dense' , 13 )
12
- net .add_layer ('dense' , 8 )
36
+ for n in range ( number ):
37
+ if len ( params_list [ n ]) != 0 :
38
+ net .add_layer (** params_list [ n ] )
13
39
14
- st .graphviz_chart (net .visualize (give_obj = True ))
40
+ if st .button ("Generate Neural Network" ):
41
+ try :
42
+ st .graphviz_chart (net .visualize (give_obj = True ))
43
+ except :
44
+ st .warning ("Set the parameters of atleast 2 layers!" )
0 commit comments