-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathXOR-synaptic.js
47 lines (39 loc) · 1.23 KB
/
XOR-synaptic.js
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
var synaptic = require('synaptic'); // Call Synaptic
var Neuron = synaptic.Neuron, // Set NN Units
Layer = synaptic.Layer,
Network = synaptic.Network,
Trainer = synaptic.Trainer,
Architect = synaptic.Architect;
function Perceptron(input, hidden, output) { // Setup Perceptron
// Setup Layers
var inputLayer = new Layer(input);
var hiddenLayer = new Layer(hidden);
var outputLayer = new Layer(output);
//Link the layers
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
//Define the layers
this.set({
input : inputLayer,
hidden : [hiddenLayer],
output : outputLayer
});
}
//Setup the Network
Perceptron.prototype = new Network();
Perceptron.prototype.constructor = Perceptron;
//Init New Perceptron and Trainer
var myPerceptron = new Perceptron(2,3,1);
var myTrainer = new Trainer(myPerceptron);
let rep = myTrainer.XOR(); //Train to XOR
console.log(rep); //Training Report
//Test The Trained Neural Network
let a = myPerceptron.activate([0,0]);
let b = myPerceptron.activate([0,1]);
let c = myPerceptron.activate([1,0]);
let d = myPerceptron.activate([1,1]);
//Print test Outputs
console.log(a);
console.log(b);
console.log(c);
console.log(d);