cazala / synaptic

architecture-free neural network library for node.js and the browser
http://caza.la/synaptic
Other
6.92k stars 666 forks source link

standalone function ignores input #250

Open jeronimonunes opened 7 years ago

jeronimonunes commented 7 years ago

How to replicate:

let synaptic = require('synaptic');
let Trainer = synaptic.Trainer,
    Architect = synaptic.Architect;
let network = new Architect.Perceptron(2, 3, 3, 1);
let trainer = new Trainer(network);
let results = trainer.XOR();
console.log(network.standalone().toString())

The output is:

function (input) {
F = {
3: 0,
5: 1,
7: 0.1892910833433558,
0: -4.620370580770757,
1: -1.4546231168506365,
2: -4.626239369583933,
4: 3.1596451251675512,
6: 3.159999932158983,
8: 0.15345996911005452,
26: 5.036600375400885,
34: 4.070143278130752,
42: 1.3192140873623495,
14: 0.38333624473935163,
9: -3.5192197962122784,
10: -0.47541138056160115,
11: -3.5217266268271947,
12: 3.042469535097086,
13: 3.0417829796597164,
15: 0.23638956820848356,
27: 5.669070989033605,
35: 1.685483771579998,
43: 1.2188908191637944,
21: 0.6450130030588465,
16: -2.8743045219459584,
17: 0.597189315903921,
18: -2.874375689078246,
19: 3.4786785183285915,
20: 3.472421455303222,
22: 0.228971228943855,
28: 6.126368959249789,
36: 0.7475900146400932,
44: 1.242478530238256,
29: 0.9841653559609655,
23: -2.4061838162738978,
24: 4.129593727251116,
25: -2.9456592284268694,
30: 0.015583908087191522,
50: 8.797426720854695,
37: 0.15164969289101066,
31: -3.4990997094146334,
32: -1.7217204394807324,
33: -3.6386228872172954,
38: 0.1286520635370728,
51: -6.718445499529998,
45: 0.9648029096261598,
39: 1.9062518623127245,
40: 3.3109604223965956,
41: 1.791717667794235,
46: 0.03395825520305595,
52: -1.2166061398231618,
53: 0.9343369035570824,
47: -4.321180455702015,
48: 2.6553000139327665,
49: -3.7718081677908586,
54: 0.06135145420844568
};
F[0] = F[1];F[1] = F[2];F[1] += F[3] * F[4];F[1] += F[5] * F[6];F[7] = (1 / (1 + Math.exp(-F[1])));F[8] = F[7] * (1 - F[7]);
F[9] = F[10];F[10] = F[11];F[10] += F[3] * F[12];F[10] += F[5] * F[13];F[14] = (1 / (1 +Math.exp(-F[10])));F[15] = F[14] * (1 - F[14]);
F[16] = F[17];F[17] = F[18];F[17] += F[3] * F[19];F[17] += F[5] * F[20];F[21] = (1 / (1 + Math.exp(-F[17])));F[22] = F[21] * (1 - F[21]);
F[23] = F[24];F[24] = F[25];F[24] += F[7] * F[26];F[24] += F[14] * F[27];F[24] += F[21] * F[28];F[29] = (1 / (1 + Math.exp(-F[24])));F[30] = F[29] * (1 - F[29]);
F[31] = F[32];F[32] = F[33];F[32] += F[7] * F[34];F[32] += F[14] * F[35];F[32] += F[21] * F[36];F[37] = (1 / (1 + Math.exp(-F[32])));F[38] = F[37] * (1 - F[37]);
F[39] = F[40];F[40] = F[41];F[40] += F[7] * F[42];F[40] += F[14] * F[43];F[40] += F[21] * F[44];F[45] = (1 / (1 + Math.exp(-F[40])));F[46] = F[45] * (1 - F[45]);
F[47] = F[48];F[48] = F[49];F[48] += F[29] * F[50];F[48] += F[37] * F[51];F[48] += F[45]* F[52];F[53] = (1 / (1 + Math.exp(-F[48])));F[54] = F[53] * (1 - F[53]);
var output = [];
output[0] = F[53];
return output;
}