Skip to content

Commit 4e78f8f

Browse files
author
Juan Cazala
committed
trainer
1 parent 4a322b6 commit 4e78f8f

File tree

2 files changed

+69
-19
lines changed

2 files changed

+69
-19
lines changed

3_network.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
var synaptic = require('synaptic')
2+
3+
var Network = synaptic.Network
4+
var Layer = synaptic.Layer
5+
var Neuron = synaptic.Neuron
6+
7+
var input = new Layer(2)
8+
var hidden = new Layer(4)
9+
var output = new Layer(1)
10+
11+
input.project(hidden)
12+
hidden.project(output)
13+
14+
var net = new Network({
15+
input: input,
16+
hidden: [hidden],
17+
output: output
18+
})
19+
20+
var rate = 0.1
21+
for (let i = 0; i < 5000; i++) {
22+
23+
// (0,0) => 0
24+
net.activate([0,0])
25+
net.propagate(rate, [0])
26+
27+
// (0,1) => 1
28+
net.activate([1,0])
29+
net.propagate(rate, [1])
30+
31+
// (1,0) => 1
32+
net.activate([0,1])
33+
net.propagate(rate, [1])
34+
35+
// (1,1) => 0
36+
net.activate([1,1])
37+
net.propagate(rate, [0])
38+
}
39+
40+
console.log('(0,0) =>', net.activate([0,0])) // 0
41+
console.log('(0,1) =>', net.activate([1,0])) // 1
42+
console.log('(1,0) =>', net.activate([0,1])) // 1
43+
console.log('(1,1) =>', net.activate([0,0])) // 0

index.js

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
var synaptic = require('synaptic')
22

3+
var Trainer = synaptic.Trainer
34
var Network = synaptic.Network
45
var Layer = synaptic.Layer
56
var Neuron = synaptic.Neuron
@@ -17,25 +18,31 @@ var net = new Network({
1718
output: output
1819
})
1920

20-
var rate = 0.1
21-
for (let i = 0; i < 5000; i++) {
22-
23-
// (0,0) => 0
24-
net.activate([0,0])
25-
net.propagate(rate, [0])
26-
27-
// (0,1) => 1
28-
net.activate([1,0])
29-
net.propagate(rate, [1])
30-
31-
// (1,0) => 1
32-
net.activate([0,1])
33-
net.propagate(rate, [1])
34-
35-
// (1,1) => 0
36-
net.activate([1,1])
37-
net.propagate(rate, [0])
38-
}
21+
var trainer = new Trainer(net)
22+
var set = [
23+
{
24+
input: [0, 0],
25+
output: [0]
26+
},
27+
{
28+
input: [1, 0],
29+
output: [1]
30+
},
31+
{
32+
input: [0, 1],
33+
output: [1]
34+
},
35+
{
36+
input: [1, 1],
37+
output: [0]
38+
}
39+
]
40+
41+
trainer.train(set, {
42+
rate: 0.1,
43+
iterations: 5000,
44+
error: 0.0001
45+
})
3946

4047
console.log('(0,0) =>', net.activate([0,0])) // 0
4148
console.log('(0,1) =>', net.activate([1,0])) // 1

0 commit comments

Comments
 (0)