| 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
|
from pyrobot.brain.conx import SRN
import pyrobot.system.debug
#class mySRN(SRN):
# def preStep(self):
# print "pre step..."
network = SRN()
network.setSequenceType("random-continuous")
network.addLayer("input", 26)
network.addContextLayer("context", 70, "hidden")
network.addLayer("hid1", 10)
network.addLayer("hidden", 70)
network.addLayer("hid2", 10)
network.addLayer("output", 26)
network.connect("input", "hid1")
network.connect("hid1", "hidden")
network.connect("context", "hidden")
network.connect("hidden", "hid2")
network.connect("hid2", "output")
def makePattern(n):
retval = [0.0] * 26
retval[-n] = 1.0
return retval
network.predict("input", "output")
network.setPatterns( {".": makePattern(1),
"boy": makePattern(2),
"girl": makePattern(3),
"cat": makePattern(4),
"dog": makePattern(5),
"chase": makePattern(6),
"feed": makePattern(7),
"see": makePattern(8),
"hear": makePattern(9),
"walk": makePattern(10),
"live": makePattern(11),
"boys": makePattern(12),
"girls": makePattern(13),
"cats": makePattern(14),
"dogs": makePattern(15),
"chases": makePattern(16),
"feeds": makePattern(17),
"sees": makePattern(18),
"hears": makePattern(19),
"walks": makePattern(20),
"lives": makePattern(21),
"John": makePattern(22),
"Mary": makePattern(23),
"hit": makePattern(24),
"hits": makePattern(25),
"who": makePattern(26) } )
network.loadInputPatternsFromFile("elman100.dat", checkEven=0)
#network.setInteractive(1)
network.setReportRate(1)
network.train() |