1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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++;
}
}
}
};
|