File tree Expand file tree Collapse file tree 2 files changed +69
-19
lines changed Expand file tree Collapse file tree 2 files changed +69
-19
lines changed Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change 1
1
var synaptic = require ( 'synaptic' )
2
2
3
+ var Trainer = synaptic . Trainer
3
4
var Network = synaptic . Network
4
5
var Layer = synaptic . Layer
5
6
var Neuron = synaptic . Neuron
@@ -17,25 +18,31 @@ var net = new Network({
17
18
output : output
18
19
} )
19
20
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
+ } )
39
46
40
47
console . log ( '(0,0) =>' , net . activate ( [ 0 , 0 ] ) ) // 0
41
48
console . log ( '(0,1) =>' , net . activate ( [ 1 , 0 ] ) ) // 1
You can’t perform that action at this time.
0 commit comments