1
1
import unittest
2
2
3
- from Mariana .layers import *
4
- from Mariana .rules import *
3
+ import Mariana .layers as ML
5
4
import Mariana .decorators as dec
6
5
import Mariana .costs as MC
7
6
import Mariana .regularizations as MR
@@ -30,27 +29,29 @@ def trainMLP_xor(self) :
30
29
ls = MS .DefaultScenario (lr = 0.1 , momentum = 0 )
31
30
cost = MC .NegativeLogLikelihood ()
32
31
33
- i = Input (2 , 'inp' )
34
- h = Hidden (4 , activation = MA .tanh , decorators = [dec .GlorotTanhInit ()], regularizations = [MR .L1 (0 ), MR .L2 (0 )])
35
- o = SoftmaxClassifier (2 , learningScenario = ls , costObject = cost , name = "out" )
32
+ i = ML . Input (2 , 'inp' )
33
+ h = ML . Hidden (4 , activation = MA .tanh , decorators = [dec .GlorotTanhInit ()], regularizations = [MR .L1 (0 ), MR .L2 (0 )])
34
+ o = ML . SoftmaxClassifier (2 , learningScenario = ls , costObject = cost , name = "out" )
36
35
37
36
mlp = i > h > o
38
37
39
38
self .xor_ins = N .array (self .xor_ins )
40
39
self .xor_outs = N .array (self .xor_outs )
41
40
for i in xrange (1000 ) :
42
41
ii = i % len (self .xor_ins )
43
- mlp .train ("out" , inp = [ self .xor_ins [ ii ] ], target = [ self .xor_outs [ ii ] ] )
42
+ mlp .train (o , inp = [ self .xor_ins [ ii ] ], target = [ self .xor_outs [ ii ] ] )
44
43
45
44
return mlp
46
45
47
46
# @unittest.skip("skipping")
48
47
def test_xor (self ) :
49
48
mlp = self .trainMLP_xor ()
50
- self .assertEqual (mlp .classify ( "out" , inp = [ self .xor_ins [0 ] ] )[0 ], 0 )
51
- self .assertEqual (mlp .classify ( "out" , inp = [ self .xor_ins [1 ] ] )[0 ], 1 )
52
- self .assertEqual (mlp .classify ( "out" , inp = [ self .xor_ins [2 ] ] )[0 ], 1 )
53
- self .assertEqual (mlp .classify ( "out" , inp = [ self .xor_ins [3 ] ] )[0 ], 0 )
49
+ o = mlp .outputs .values ()[0 ]
50
+
51
+ self .assertEqual (mlp .classify ( o , inp = [ self .xor_ins [0 ] ] )[0 ], 0 )
52
+ self .assertEqual (mlp .classify ( o , inp = [ self .xor_ins [1 ] ] )[0 ], 1 )
53
+ self .assertEqual (mlp .classify ( o , inp = [ self .xor_ins [2 ] ] )[0 ], 1 )
54
+ self .assertEqual (mlp .classify ( o , inp = [ self .xor_ins [3 ] ] )[0 ], 0 )
54
55
55
56
# @unittest.skip("skipping")
56
57
def test_save_load (self ) :
@@ -60,10 +61,12 @@ def test_save_load(self) :
60
61
mlp .save ("test_save" )
61
62
mlp2 = cPickle .load (open ('test_save.mariana.pkl' ))
62
63
63
- self .assertEqual (mlp2 .classify ( "out" , inp = [ self .xor_ins [0 ] ] )[0 ], 0 )
64
- self .assertEqual (mlp2 .classify ( "out" , inp = [ self .xor_ins [1 ] ] )[0 ], 1 )
65
- self .assertEqual (mlp2 .classify ( "out" , inp = [ self .xor_ins [2 ] ] )[0 ], 1 )
66
- self .assertEqual (mlp2 .classify ( "out" , inp = [ self .xor_ins [3 ] ] )[0 ], 0 )
64
+
65
+ o = mlp .outputs .values ()[0 ]
66
+ self .assertEqual (mlp2 .classify ( o , inp = [ self .xor_ins [0 ] ] )[0 ], 0 )
67
+ self .assertEqual (mlp2 .classify ( o , inp = [ self .xor_ins [1 ] ] )[0 ], 1 )
68
+ self .assertEqual (mlp2 .classify ( o , inp = [ self .xor_ins [2 ] ] )[0 ], 1 )
69
+ self .assertEqual (mlp2 .classify ( o , inp = [ self .xor_ins [3 ] ] )[0 ], 0 )
67
70
68
71
os .remove ('test_save.mariana.pkl' )
69
72
@@ -72,11 +75,11 @@ def test_composite(self) :
72
75
ls = MS .DefaultScenario (lr = 0.1 , momentum = 0 )
73
76
cost = MC .NegativeLogLikelihood ()
74
77
75
- inp = Input (2 , 'inp' )
76
- h1 = Hidden (2 , activation = MA .tanh , name = "h1" )
77
- h2 = Hidden (2 , activation = MA .tanh , name = "h2" )
78
- o = SoftmaxClassifier (2 , learningScenario = ls , costObject = cost , name = "out" )
79
- c = Composite (name = "Comp" )
78
+ inp = ML . Input (2 , 'inp' )
79
+ h1 = ML . Hidden (2 , activation = MA .tanh , name = "h1" )
80
+ h2 = ML . Hidden (2 , activation = MA .tanh , name = "h2" )
81
+ o = ML . SoftmaxClassifier (2 , learningScenario = ls , costObject = cost , name = "out" )
82
+ c = ML . Composite (name = "Comp" )
80
83
81
84
inp > h1 > c
82
85
inp > h2 > c
@@ -86,12 +89,12 @@ def test_composite(self) :
86
89
self .xor_outs = N .array (self .xor_outs )
87
90
for i in xrange (1000 ) :
88
91
ii = i % len (self .xor_ins )
89
- mlp .train ("out" , inp = [ self .xor_ins [ ii ] ], target = [ self .xor_outs [ ii ] ])
92
+ mlp .train (o , inp = [ self .xor_ins [ ii ] ], target = [ self .xor_outs [ ii ] ])
90
93
91
- self .assertEqual (mlp .classify ( "out" , inp = [ self .xor_ins [0 ] ] )[0 ], 0 )
92
- self .assertEqual (mlp .classify ( "out" , inp = [ self .xor_ins [1 ] ] )[0 ], 1 )
93
- self .assertEqual (mlp .classify ( "out" , inp = [ self .xor_ins [2 ] ] )[0 ], 1 )
94
- self .assertEqual (mlp .classify ( "out" , inp = [ self .xor_ins [3 ] ] )[0 ], 0 )
94
+ self .assertEqual (mlp .classify ( o , inp = [ self .xor_ins [0 ] ] )[0 ], 0 )
95
+ self .assertEqual (mlp .classify ( o , inp = [ self .xor_ins [1 ] ] )[0 ], 1 )
96
+ self .assertEqual (mlp .classify ( o , inp = [ self .xor_ins [2 ] ] )[0 ], 1 )
97
+ self .assertEqual (mlp .classify ( o , inp = [ self .xor_ins [3 ] ] )[0 ], 0 )
95
98
96
99
if __name__ == '__main__' :
97
100
unittest .main ()
0 commit comments