Skip to content
Snippets Groups Projects
Commit 76403575 authored by Hammouda Elbez's avatar Hammouda Elbez :computer:
Browse files

2D view: verified multilayer support

parent 96242022
Branches
No related tags found
1 merge request!26Custom 2d view
......@@ -513,8 +513,8 @@ class callbacks(callbacksOp):
try:
if(speedValue < 0.25):
speedValue = 0.25
if (speedValue > 5):
speedValue = 5
if (speedValue > 120):
speedValue = 120
return [speedValue * 1000,speedValue]
except Exception:
......@@ -577,8 +577,13 @@ class callbacks(callbacksOp):
for layer in Layer2DViewFilter:
#neurons = [[0 for j in range(g.nbrClasses)] for i in range(g.Layer_Neuron[layer])]
if spikes:
maxSpike = max([list(list(list(s.values())[0].values())[0].values())[0] for s in spikes if list(s.keys())[0] == 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:
layerSpikes = []
if spikes and layerSpikes:
maxSpike = max(layerSpikes)
for spike in spikes:
if list(spike.keys())[0] == layer:
# update the spikes neurons
......@@ -604,9 +609,9 @@ class callbacks(callbacksOp):
matrix[layer] = []
indices[layer] = []
heatmaps = [{"data":[go.Heatmap(z = matrix[layer], colorscale= 'Reds',showscale= False, customdata = indices[layer], hovertemplate=('Neuron: %{customdata} <br>Spikes: %{z} <extra></extra>'))],"layout":{"xaxis":dict(showgrid = False, zeroline = False),"yaxis":dict(autorange = 'reversed',scaleanchor = 'x',showgrid = False, zeroline = False),"margin":{'l': 0, 'r': 0, 't': 5, 'b': 0},"uirevision":'no reset of zoom', "hoverlabel_align": 'right'}} for layer in super.AccumulatedSpikes2D]
heatmaps = [{"data":[go.Heatmap(z = matrix[layer], colorscale= 'Reds', customdata = indices[layer], hovertemplate=('Neuron: %{customdata} <br>Spikes: %{z} <extra></extra>'))],"layout":{"xaxis":dict(showgrid = False, zeroline = False),"yaxis":dict(autorange = 'reversed',scaleanchor = 'x',showgrid = False, zeroline = False),"margin":{'l': 0, 'r': 0, 't': 5, 'b': 0},"uirevision":'no reset of zoom', "hoverlabel_align": 'right'}} for layer in super.AccumulatedSpikes2D]
SpikesActivityPerInput = [{"data":[go.Heatmap(z=super.SpikesActivityPerInput[layer], colorscale= 'jet',showscale= False,hovertemplate=('Class: %{x} <br>Neuron: %{y} <br>Spikes: %{z} <extra></extra>'))],"layout":{"xaxis":dict(title="Class",tickmode="array",tickvals=[i for i in range(g.nbrClasses+1)]),"yaxis":dict(title="Neuron"),"margin":{'l':25,'r': 0,'t': 0},"uirevision":'no reset of zoom'}} for layer in super.SpikesActivityPerInput]
SpikesActivityPerInput = [{"data":[go.Heatmap(z=super.SpikesActivityPerInput[layer], colorscale= 'Reds',hovertemplate=('Class: %{x} <br>Neuron: %{y} <br>Spikes: %{z} <extra></extra>'))],"layout":{"xaxis":dict(title="Class",tickmode="array",tickvals=[i for i in range(g.nbrClasses+1)]),"yaxis":dict(title="Neuron"),"margin":{'r': 0,'t': 0},"uirevision":'no reset of zoom'}} for layer in super.SpikesActivityPerInput]
return [elements,[],heatmaps,SpikesActivityPerInput]
else:
......@@ -621,9 +626,9 @@ class callbacks(callbacksOp):
matrix[layer] = []
indices[layer] = []
heatmaps = [{"data":[go.Heatmap(z = matrix[layer], colorscale= 'Reds',showscale= False, customdata = indices[layer], hovertemplate=('Neuron: %{customdata} <br>Spikes: %{z} <extra></extra>'))],"layout":{"xaxis":dict(showgrid = False, zeroline = False),"yaxis":dict(autorange = 'reversed',scaleanchor = 'x',showgrid = False, zeroline = False),"margin":{'l': 0, 'r': 0, 't': 5, 'b': 0},"uirevision":'no reset of zoom', "hoverlabel_align": 'right'}} for layer in super.AccumulatedSpikes2D]
heatmaps = [{"data":[go.Heatmap(z = matrix[layer], colorscale= 'Reds', customdata = indices[layer], hovertemplate=('Neuron: %{customdata} <br>Spikes: %{z} <extra></extra>'))],"layout":{"xaxis":dict(showgrid = False, zeroline = False),"yaxis":dict(autorange = 'reversed',scaleanchor = 'x',showgrid = False, zeroline = False),"margin":{'l': 0, 'r': 0, 't': 5, 'b': 0},"uirevision":'no reset of zoom', "hoverlabel_align": 'right'}} for layer in super.AccumulatedSpikes2D]
SpikesActivityPerInput = [{"data":[go.Heatmap(z=super.SpikesActivityPerInput[layer], colorscale= 'jet',showscale= False,hovertemplate=('Class: %{x} <br>Neuron: %{y} <br>Spikes: %{z} <extra></extra>'))],"layout":{"xaxis":dict(title="Class",tickmode="array",tickvals=[i for i in range(g.nbrClasses+1)]),"yaxis":dict(title="Neuron"),"margin":{'l':25,'r': 0,'t': 0},"uirevision":'no reset of zoom'}} for layer in super.SpikesActivityPerInput]
SpikesActivityPerInput = [{"data":[go.Heatmap(z=super.SpikesActivityPerInput[layer], colorscale= 'Reds',hovertemplate=('Class: %{x} <br>Neuron: %{y} <br>Spikes: %{z} <extra></extra>'))],"layout":{"xaxis":dict(title="Class",tickmode="array",tickvals=[i for i in range(g.nbrClasses+1)]),"yaxis":dict(title="Neuron"),"margin":{'r': 0,'t': 0},"uirevision":'no reset of zoom'}} for layer in super.SpikesActivityPerInput]
return [elements,f"Neuron {mouseOverNodeData['label']} : {mouseOverNodeData['spikes']}" if 'spikes' in mouseOverNodeData else "", heatmaps,SpikesActivityPerInput]
except Exception:
print("OnHover:"+traceback.format_exc())
......
......@@ -271,7 +271,7 @@ 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-6 col-sm-12 col-xs-12"),
], style={ "height": "50vh","textAlign": "start", "padding": "0px"},className="col-lg-5 col-sm-12 col-xs-12"),
# 3D destribution
html.Div([
......@@ -279,7 +279,7 @@ class layout(layoutOp):
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")
], style={"textAlign": "start", },className="col-lg-3 col-sm-12 col-xs-12")
], 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"),
......@@ -324,7 +324,7 @@ class layout(layoutOp):
html.Span("Update Speed (s)",
className="input-group-text")
], className="input-group-prepend"),
dbc.Input(type="number", id="speed", value=1, min=0.25, max=5, step=0.25, style={
dbc.Input(type="number", id="speed", value=1, min=0.25, max=120, step=0.25, style={
"width": "30%", "textAlign": "center"})
], className="input-group col-md-12 col-sm-12 col-lg-4", style={"height": "38px", "paddingTop": "12px"}),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment