-
Notifications
You must be signed in to change notification settings - Fork 1
/
params_def.go
179 lines (174 loc) · 5.93 KB
/
params_def.go
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
// Copyright (c) 2021, The Emergent Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import "github.com/emer/emergent/params"
// ParamSets is the default set of parameters -- Base is always applied, and others can be optionally
// selected to apply on top of that
var ParamSets = params.Sets{
{Name: "Base", Desc: "these are the best params", Sheets: params.Sheets{
"Network": ¶ms.Sheet{
{Sel: "Layer", Desc: "using default 1.8 inhib for hidden layers",
Params: params.Params{
"Layer.Inhib.Layer.Gi": "1.8",
"Layer.Learn.AvgL.Gain": "2.5",
"Layer.Act.Gbar.L": "0.2",
}},
{Sel: ".Hidden", Desc: "noise!",
Params: params.Params{
"Layer.Act.Noise.Dist": "Gaussian",
"Layer.Act.Noise.Var": "0.005", // 0.005 > 0.01 probably
"Layer.Act.Noise.Type": "GeNoise",
}},
{Sel: "#V2Pd", Desc: "depth input layers use pool inhibition, weaker global?",
Params: params.Params{
"Layer.Inhib.Layer.Gi": "1.2", // some weaker global inhib
"Layer.Inhib.Pool.On": "true",
"Layer.Inhib.Pool.Gi": "1.8",
}},
{Sel: "#S1V", Desc: "S1V regular",
Params: params.Params{
"Layer.Inhib.Layer.Gi": "1.8",
}},
{Sel: "#MSTdP", Desc: "MT uses pool inhibition, full global?",
Params: params.Params{
"Layer.Inhib.Layer.Gi": "1.6",
"Layer.Inhib.Pool.On": "true",
"Layer.Inhib.Pool.Gi": "1.6",
}},
{Sel: ".cIPL", Desc: "cIPL global",
Params: params.Params{
"Layer.Inhib.Layer.Gi": "1.8",
}},
{Sel: "#cIPLP", Desc: "cIPL global",
Params: params.Params{
"Layer.TRC.NoTopo": "true", // true def
}},
{Sel: ".PCC", Desc: "PCC uses pool inhibition but is treated as full",
Params: params.Params{
"Layer.Inhib.Layer.Gi": "1.4",
"Layer.Inhib.Pool.On": "true",
"Layer.Inhib.Pool.Gi": "1.6",
}},
{Sel: "#PCCP", Desc: "no topo",
Params: params.Params{
"Layer.TRC.NoTopo": "true", // true def
}},
{Sel: "#SMAP", Desc: "no topo",
Params: params.Params{
"Layer.TRC.NoTopo": "true", // true def
}},
{Sel: "#VL", Desc: "VL regular inhib",
Params: params.Params{
"Layer.Inhib.Layer.Gi": "1.6",
}},
{Sel: ".S1S", Desc: "lower inhib, higher act",
Params: params.Params{
"Layer.Inhib.Layer.Gi": "1.0", // some weaker global inhib
"Layer.Inhib.Pool.On": "true",
"Layer.Inhib.Pool.Gi": "1.2", // weaker
"Layer.Inhib.ActAvg.Init": "0.5",
}},
{Sel: "#M1", Desc: "noise!",
Params: params.Params{
"Layer.Act.Noise.Dist": "Gaussian",
"Layer.Act.Noise.Var": "0.01", // 0.01 orig -- some noise essential for 1 self
"Layer.Act.Noise.Type": "GeNoise",
"Layer.Inhib.Layer.Gi": "1.8", // reg
}},
{Sel: "#SMA", Desc: "noise!",
Params: params.Params{
"Layer.Act.Noise.Dist": "Gaussian",
"Layer.Act.Noise.Var": "0.01", // 0.01 orig
"Layer.Act.Noise.Type": "GeNoise",
}},
{Sel: ".IT", Desc: "reg",
Params: params.Params{
"Layer.Inhib.Layer.Gi": "1.8",
}},
{Sel: ".LIP", Desc: "reg",
Params: params.Params{
"Layer.Inhib.Layer.Gi": "1.6",
"Layer.Inhib.Pool.On": "true",
"Layer.Inhib.Pool.Gi": "1.6",
}},
//////////////////////////////////////////////////////////
// Prjns
{Sel: "Prjn", Desc: "norm and momentum on is critical, wt bal not as much but fine",
Params: params.Params{
"Prjn.Learn.Norm.On": "true",
"Prjn.Learn.Momentum.On": "true",
"Prjn.Learn.Momentum.MTau": "10", // 10 > 20
"Prjn.Learn.WtBal.On": "true",
"Prjn.Learn.Lrate": "0.04", // critical for lrate sched
}},
{Sel: ".Back", Desc: "top-down back-projections MUST have lower relative weight scale, otherwise network hallucinates",
Params: params.Params{
"Prjn.WtScale.Rel": "0.1",
}},
{Sel: ".CTBack", Desc: "deep top-down -- stronger",
Params: params.Params{
"Prjn.WtScale.Rel": "0.2", // 0.2 > 0.5
}},
{Sel: ".Lateral", Desc: "default for lateral",
Params: params.Params{
"Prjn.WtInit.Sym": "false",
"Prjn.WtScale.Rel": "0.02", // .02 > .05 == .01 > .1 -- very minor diffs on TE cat
"Prjn.WtInit.Mean": "0.5",
"Prjn.WtInit.Var": "0",
}},
{Sel: ".CTFmSuper", Desc: "CT from main super -- fixed one2one",
Params: params.Params{
"Prjn.WtInit.Mean": "0.5", // 0.8 better for wwi3d, 0.5 default
"Prjn.WtScale.Rel": "0.5", // 0.5 > 0.2
}},
{Sel: ".CTSelf", Desc: "CT to CT",
Params: params.Params{
"Prjn.WtScale.Rel": "0.5", // 0.5 > 0.2
}},
{Sel: ".FwdToPulv", Desc: "feedforward to pulvinar directly",
Params: params.Params{
"Prjn.WtScale.Rel": "0.1",
}},
{Sel: ".FmPulv", Desc: "default for pulvinar",
Params: params.Params{
"Prjn.WtScale.Rel": "0.1", // .1 > .2
}},
{Sel: "#ITToITCT", Desc: "IT likes stronger FmSuper",
Params: params.Params{
"Prjn.WtScale.Rel": "1", // 0.5 > 0.2
}},
{Sel: "#LIPToLIPCT", Desc: "LIP likes stronger FmSuper",
Params: params.Params{
"Prjn.WtScale.Rel": "1", // 0.5 > 0.2
}},
{Sel: "#LIPCTToLIPCT", Desc: "LIP likes stronger CTSelf",
Params: params.Params{
"Prjn.WtScale.Rel": "1", // 0.5 > 0.2
}},
},
"Sim": ¶ms.Sheet{ // sim params apply to sim object
{Sel: "Sim", Desc: "best params always finish in this time",
Params: params.Params{
"Sim.MaxEpcs": "500",
}},
},
}},
{Name: "NoMomentum", Desc: "no momentum or normalization", Sheets: params.Sheets{
"Network": ¶ms.Sheet{
{Sel: "Prjn", Desc: "no norm or momentum",
Params: params.Params{
"Prjn.Learn.Norm.On": "false",
"Prjn.Learn.Momentum.On": "false",
}},
},
}},
{Name: "WtBalOn", Desc: "try with weight bal on", Sheets: params.Sheets{
"Network": ¶ms.Sheet{
{Sel: "Prjn", Desc: "weight bal on",
Params: params.Params{
"Prjn.Learn.WtBal.On": "true",
}},
},
}},
}