From a343f7196c6d42644694372890a35b84b76bc934 Mon Sep 17 00:00:00 2001 From: Hammouda Elbez <hammouda.elbez@univ-lille.fr> Date: Wed, 24 May 2023 18:00:57 +0200 Subject: [PATCH] Fixed issue showing layers without activity --- src/Modules/General/callbacks.py | 3 +-- src/Modules/General/layout.py | 22 +++++++++++----------- src/Modules/Neuron/layout.py | 4 ++-- src/Modules/Synapse/layout.py | 4 ++-- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/Modules/General/callbacks.py b/src/Modules/General/callbacks.py index 4621579..b9e4258 100755 --- a/src/Modules/General/callbacks.py +++ b/src/Modules/General/callbacks.py @@ -568,7 +568,7 @@ class callbacks(callbacksOp): indices = {} labelData = getNetworkInput(int(sliderValue)*float(updateInterval), g.updateInterval) if callback_context.triggered[0]['prop_id'].split('.')[0] in ["v-step","vis-update"]: - super.SpikesActivityPerInput = {i:[[0 for j in range(g.nbrClasses+1)] for i in range(g.Layer_Neuron[i])] for i in g.Layer_Neuron if i != "Input"} + super.SpikesActivityPerInput = {i["layer"]:[[0 for _ in range(g.nbrClasses+1)] for _ in range(g.Layer_Neuron[i["layer"]])] for i in g.LayersNeuronsInfo} for element in elements: if element["data"]['spiked'] != -1: element["data"]["spiked"] = 0 @@ -577,7 +577,6 @@ class callbacks(callbacksOp): spikes = getSpike(int(sliderValue)*float(updateInterval), g.updateInterval,Layer2DViewFilter,True) for layer in Layer2DViewFilter: - #neurons = [[0 for j in range(g.nbrClasses)] for i in range(g.Layer_Neuron[layer])] try: layerSpikes = [list(list(list(s.values())[0].values())[0].values())[0] for s in spikes if list(s.keys())[0] == layer] except Exception: diff --git a/src/Modules/General/layout.py b/src/Modules/General/layout.py index db02ae2..7cc7508 100755 --- a/src/Modules/General/layout.py +++ b/src/Modules/General/layout.py @@ -83,8 +83,8 @@ class layout(layoutOp): self.MaxSpike.clear() self.MaxSynapse.clear() self.Spikes2D = self.generate2DView(self.g) - self.AccumulatedSpikes2D = {i:[0 for n in self.Spikes2D if n["data"]["spiked"] != -1 and i == n["data"]["parent"]] for i in self.g.Layer_Neuron if i != "Input"} - self.SpikesActivityPerInput = {i:[[0 for j in range(self.g.nbrClasses+1)] for i in range(self.g.Layer_Neuron[i])] for i in self.g.Layer_Neuron if i != "Input"} + self.AccumulatedSpikes2D = {i["layer"]:[0 for n in self.Spikes2D if n["data"]["spiked"] != -1 and i["layer"] == n["data"]["parent"]] for i in self.g.LayersNeuronsInfo} + self.SpikesActivityPerInput = {i["layer"]:[[0 for j in range(self.g.nbrClasses+1)] for _ in range(self.g.Layer_Neuron[i["layer"]])] for i in self.g.LayersNeuronsInfo} self.Max = 0 def Vis(self): @@ -153,9 +153,9 @@ class layout(layoutOp): dcc.Dropdown( id='GeneralLayerFilter', options=[{'label': str(i), 'value': str(i)} for i in ( - i for i in self.g.Layer_Neuron if i != "Input")], + i["layer"] for i in self.g.LayersNeuronsInfo)], value=[str(i) for i in ( - i for i in self.g.Layer_Neuron if i != "Input")], + i["layer"] for i in self.g.LayersNeuronsInfo)], multi=True, style={"minWidth": "20%","marginLeft": "5px", "textAlign": "start"})], className="d-flex", style={"paddingLeft": "20px", 'width': '100%'}) ], className="col-12") @@ -183,9 +183,9 @@ class layout(layoutOp): dcc.Dropdown( id='2DViewLayerFilter', options=[{'label': str(i), 'value': str(i)} for i in ( - i for i in self.g.Layer_Neuron if i != "Input")], + i["layer"] for i in self.g.LayersNeuronsInfo)], value=[str(i) for i in ( - i for i in self.g.Layer_Neuron if i != "Input")], + i["layer"] for i in self.g.LayersNeuronsInfo)], multi=True, style={"minWidth": "80%", "textAlign": "start"}), ], style={"textAlign": "start", },className="d-flex col-lg-12 col-sm-12 col-xs-12"), @@ -193,8 +193,8 @@ class layout(layoutOp): html.Div([html.P("Accumulated Spikes", style={"margin":"0px"})]), # Accumulated Spikes HeatMap dcc.Tabs([dcc.Tab(dbc.Card(dbc.CardBody([ - dcc.Graph(id={"type":"2DView-heatmap","index":i}, config={"displaylogo": False}) - ])),label=i, value='2Dview-'+str(x)) for x, i in enumerate(self.g.Layer_Neuron) if i != "Input"],value="2Dview-1"), + dcc.Graph(id={"type":"2DView-heatmap","index":i["layer"]}, config={"displaylogo": False}) + ])),label=i["layer"], value='2Dview-'+str(x)) for x, i in enumerate(self.g.LayersNeuronsInfo)],value="2Dview-0"), ], style={"textAlign": "start", }, className="col-lg-3 col-sm-12 col-xs-12") , html.Div( @@ -271,14 +271,14 @@ class layout(layoutOp): )],style={'position': 'absolute','width': '100%','height': '100%','z-index': 999,"background": "rgba(68, 71, 99, 0.05)"}), html.P(id="spikes_info", style={"padding": "8px","margin":"0px"}) - ], style={ "height": "50vh","textAlign": "start", "padding": "0px"},className="col-lg-5 col-sm-12 col-xs-12"), + ], style={ "textAlign": "start", "padding": "0px"},className="col-lg-5 col-sm-12 col-xs-12"), # 3D destribution html.Div([ html.Div([html.P("Spikes Activity Per Input", style={"margin":"0px"})]), dcc.Tabs([dcc.Tab(dbc.Card(dbc.CardBody([ - dcc.Graph(id={"type":"SpikesActivityPerInput","index":i}, config={"displaylogo": False}) - ])),label=i, value='SpikesActivityPerInput-'+str(x)) for x, i in enumerate(self.g.Layer_Neuron) if i != "Input"],value="SpikesActivityPerInput-1") + dcc.Graph(id={"type":"SpikesActivityPerInput","index":i["layer"]}, config={"displaylogo": False}) + ])),label=i["layer"], value='SpikesActivityPerInput-'+str(x)) for x, i in enumerate(self.g.LayersNeuronsInfo)],value="SpikesActivityPerInput-0") ], style={"textAlign": "start", },className="col-lg-4 col-sm-12 col-xs-12") ], className="row")), label="2D view", value="2Dview")], id="tabinfo", value="General information"), diff --git a/src/Modules/Neuron/layout.py b/src/Modules/Neuron/layout.py index 7478741..a029e50 100755 --- a/src/Modules/Neuron/layout.py +++ b/src/Modules/Neuron/layout.py @@ -66,8 +66,8 @@ class layout(layoutOp): html.Div([ dcc.Dropdown( id='LayerFilterNeuron', - options=[{'label': str(i), 'value': str(i)} for i in ( - i for i in self.g.Layer_Neuron if i != "Input")], + options=[{'label': str(i["layer"]), 'value': str(i["layer"])} for i in ( + i for i in self.g.LayersNeuronsInfo)], multi=False, style={'width': '150px', "marginLeft": "10px", "textAlign": "start"}), dcc.Dropdown( diff --git a/src/Modules/Synapse/layout.py b/src/Modules/Synapse/layout.py index 11863c8..c3d2f2a 100755 --- a/src/Modules/Synapse/layout.py +++ b/src/Modules/Synapse/layout.py @@ -59,8 +59,8 @@ class layout(layoutOp): dcc.Store(id="heatmapEditInfo",data=[False,False,False]), dcc.Dropdown( id='LayerFilterSynapse', - options=[{'label': str(i), 'value': str(i)} for i in ( - i for i in self.g.Layer_Neuron if i != "Input")], multi=False, + options=[{'label': str(i["layer"]), 'value': str(i["layer"])} for i in ( + i for i in self.g.LayersNeuronsInfo)], multi=False, style={'width': '150px', "marginLeft": "10px", "textAlign": "start"}), dcc.Dropdown( id='NeuronFilterSynapse', options=[], multi=False, -- GitLab