summaryrefslogtreecommitdiff
path: root/javascript_network/network.js
diff options
context:
space:
mode:
authorGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:12:36 +0200
committerGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:12:36 +0200
commitb4c345e6a5fa929ba20eac19183b9c777055f52d (patch)
tree23a0232f2526c5ab7f53391609a8a0a5960865f0 /javascript_network/network.js
Initial commit
Diffstat (limited to 'javascript_network/network.js')
-rw-r--r--javascript_network/network.js95
1 files changed, 95 insertions, 0 deletions
diff --git a/javascript_network/network.js b/javascript_network/network.js
new file mode 100644
index 0000000..3a13b72
--- /dev/null
+++ b/javascript_network/network.js
@@ -0,0 +1,95 @@
+var network=function(x,y,arch){
+ var sep =0;
+ this.x=x;
+ this.y=y;
+ var val_max;
+ this.archi = arch;
+ this.tabCoordinates=[];
+ var ecart = width/(this.archi.length+1);
+ val_max = Math.max(...this.archi);
+ var rad =windowHeight/(val_max+5);
+ this.nbLayers = this.archi.length;
+ this.tabLayers =[];
+ for(var i=0;i<this.nbLayers;i++){
+ var nbI,nbO;
+ if(i==0){
+ nbI = 1;
+ nbO=this.archi[i+1];
+ }else if (i==this.nbLayers-1){
+ nbI = this.archi[i-1];
+ nbO = 1;
+ }else{
+ nbI = this.archi[i-1];
+ nbO = this.archi[i+1];
+ }
+ var l = new layer(this.x+(i*ecart),(val_max-this.archi[i])*(rad/2),this.archi[i],nbI,nbO);
+ for(var j=0;j<this.archi[i];j++){
+ l.tabNeurones.push(new neuron(l.x,l.y+((rad+sep)*j)+50,rad,nbI,nbO,200));
+ var coord = [l.x,l.y+((rad+sep)*j)+50];
+ this.tabCoordinates.push(coord);
+ }
+ this.tabLayers.push(l);
+ }
+
+ this.show=function(info,info2,info3){
+ strokeWeight(1);
+ stroke(255);
+ var z=0;
+ var i=0;
+ var cpt=0;
+ var total=0;
+ for(var x=0;x<this.archi.length;x++){
+ total+=this.archi[x];
+ }
+ var somme = this.archi[z];
+ while(i<total){
+ stroke(255);
+ for(var j=0;j<this.archi[z+1];j++){
+ if(i<this.archi[0]){
+ textSize(20);
+ text(info2[i],this.tabCoordinates[i][0]-70,this.tabCoordinates[i][1]);
+ line(this.tabCoordinates[i][0],this.tabCoordinates[i][1],this.tabCoordinates[i][0]-50,this.tabCoordinates[i][1])
+ }
+ line(this.tabCoordinates[i][0],this.tabCoordinates[i][1],this.tabCoordinates[j+somme][0],this.tabCoordinates[j+somme][1]);
+
+ }
+ i++;
+ cpt++;
+ if(cpt==this.archi[z]){
+ cpt=0;
+ z++;
+ somme+=this.archi[z];
+ }
+ }
+ for(var j=total-this.archi[(this.archi.length)-1];j<total;j++){
+ textSize(20);
+ text(info3[j-(total-this.archi[(this.archi.length)-1])],this.tabCoordinates[j][0]+50,this.tabCoordinates[j][1]);
+ line(this.tabCoordinates[j][0],this.tabCoordinates[j][1],this.tabCoordinates[j][0]+50,this.tabCoordinates[j][1]);
+ }
+ var print =[];
+ var offset;
+ var cpt;
+ var x;
+ var k=0;
+ for(var i=0;i<this.nbLayers;i++){
+ for(var j=0;j<this.tabLayers[i].nbNeurons;j++){
+ if(i>0){
+ offset= this.tabLayers[i-1].tabNeurones[0].nbrOutput;
+ }else{
+ offset=0;
+ }
+ cpt = this.tabLayers[i].tabNeurones[0].nbrInput;
+ x=0;
+ while(x<cpt){
+ print.push(info[k+(offset*x)]+"\n");
+ x++;
+ }
+
+ this.tabLayers[i].tabNeurones[j].show(print,cpt);
+ print = [];
+ k++;
+ }
+ }
+ }
+
+};