Dynamic dopamine modulation in the basal ganglia: Learning in Parkinson (Frank et al 2004,2005)

 Download zip file 
Help downloading and running models
Accession:79488
See README file for all info on how to run models under different tasks and simulated Parkinson's and medication conditions.
Reference:
1 . Frank MJ (2005) Dynamic dopamine modulation in the basal ganglia: a neurocomputational account of cognitive deficits in medicated and nonmedicated Parkinsonism. J Cogn Neurosci 17:51-72 [PubMed]
2 . Frank MJ, Seeberger LC, O'reilly RC (2004) By carrot or by stick: cognitive reinforcement learning in parkinsonism. Science 306:1940-3 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Basal ganglia;
Cell Type(s): Neostriatum medium spiny direct pathway GABA cell;
Channel(s): I Na,t; I K,leak; I Cl,Ca;
Gap Junctions:
Receptor(s): D1; D2; Glutamate; Gaba;
Gene(s):
Transmitter(s): Dopamine; Gaba; Glutamate;
Simulation Environment: Emergent/PDP++;
Model Concept(s): Simplified Models; Synaptic Plasticity; Pathophysiology; Rate-coding model neurons; Parkinson's; Reinforcement Learning; Action Selection/Decision Making; Hebbian plasticity;
Implementer(s): Frank, Michael [mfrank at u.arizona.edu];
Search NeuronDB for information about:  Neostriatum medium spiny direct pathway GABA cell; D1; D2; Glutamate; Gaba; I Na,t; I K,leak; I Cl,Ca; Dopamine; Gaba; Glutamate;
/
BG_DA_Learn
supplement
BG_ProbRev.proj
BG_ProbSelect.proj
BG_WeatherPred.proj
                            
// ta_Dump File v2.0
LeabraProject .projects[0] { 
Doc_Group @.docs = [1] {
taDoc @[0] { };
};

Wizard_Group @.wizards = [1] {
LeabraWizard @[0] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};

LayerWizElList @.layer_cfg = [3] {
LayerWizEl @[0] { };
LayerWizEl @[1] { };
LayerWizEl @[2] { };
};
};
};

SelectEdit_Group @.edits = [1] {
SelectEdit @[0] { 
EditMbrItem_Group @.mbrs = [5] {
EditMbrItem @[0] { };
EditMbrItem @[1] { };
EditMbrItem @[2] { };
EditMbrItem @[3] { };
EditMbrItem @[4] { };
};
};
};

DataTable_Group @.data = [0] {
DataTable_Group @.gp[0] = [4] { 
DataTable @[0] { 
DataTableCols @.data = [5] {
String_Data @[0] { };
float_Data @[1] { };
float_Data @[2] { };
float_Data @[3] { };
float_Data @[4] { };
};
};
DataTable @[1] { 
DataTableCols @.data = [4] {
String_Data @[0] { };
float_Data @[1] { };
float_Data @[2] { };
float_Data @[3] { };
};
};
DataTable @[2] { 
DataTableCols @.data = [6] {
String_Data @[0] { };
float_Data @[1] { };
float_Data @[2] { };
float_Data @[3] { };
float_Data @[4] { };
float_Data @[5] { };
};
};
DataTable @[3] { 
DataTableCols @.data = [6] {
String_Data @[0] { };
float_Data @[1] { };
float_Data @[2] { };
float_Data @[3] { };
float_Data @[4] { };
float_Data @[5] { };
};
};
};
DataTable_Group @.gp[1] = [3] { 
DataTable @[0] { 
DataTableCols @.data = [10] {
int_Data @[0] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
int_Data @[1] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
int_Data @[2] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
String_Data @[3] { };
String_Data @[4] { };
int_Data @[5] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
float_Data @[6] { };
float_Data @[7] { };
float_Data @[8] { };
float_Data @[9] { };
};
};
DataTable @[1] { 
DataTableCols @.data = [6] {
int_Data @[0] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
int_Data @[1] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
float_Data @[2] { };
float_Data @[3] { };
float_Data @[4] { };
float_Data @[5] { };
};
};
DataTable @[2] { 
DataTableCols @.data = [16] {
int_Data @[0] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
int_Data @[1] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
int_Data @[2] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
String_Data @[3] { };
String_Data @[4] { };
int_Data @[5] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
int_Data @[6] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
float_Data @[7] { };
float_Data @[8] { };
float_Data @[9] { };
float_Data @[10] { };
float_Data @[11] { };
float_Data @[12] { };
float_Data @[13] { };
float_Data @[14] { };
float_Data @[15] { };
};
};
};
DataTable_Group @.gp[2] = [1] { 
DataTable @[0] { 
DataTableCols @.data = [11] {
int_Data @[0] { };
float_Data @[1] { };
float_Data @[2] { };
float_Data @[3] { };
float_Data @[4] { };
float_Data @[5] { };
float_Data @[6] { };
float_Data @[7] { };
float_Data @[8] { };
float_Data @[9] { };
float_Data @[10] { };
};
};
};
};

taBase_Group @.data_proc = [4] {
taDataProc @[0] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
taDataAnal @[1] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
taDataGen @[2] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
taImageProc @[3] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
};

Program_Group @.programs = [0] {
Program_Group @.gp[0] = [17] { 
Program @[0] { 
ProgVar_List @.args = [5] {
ProgVar @[0] { };
ProgVar @[1] { };
ProgVar @[2] { };
ProgVar @[3] { };
ProgVar @[4] { };
};

ProgVar_List @.vars = [1] {
ProgVar @[0] { };
};

ProgEl_List @.init_code = [1] {
NetCounterInit @[0] { };
};

ProgEl_List @.prog_code = [2] {
NetCounterInit @[0] { };
WhileLoop @[1] { 
ProgEl_List @.loop_code = [2] {
ProgramCall @[0] { 
ProgArg_List @.prog_args = [5] {
ProgArg @[0] { };
ProgArg @[1] { };
ProgArg @[2] { };
ProgArg @[3] { };
ProgArg @[4] { };
};
};
NetCounterIncr @[1] { };
};
};
};
};
Program @[1] { 
ProgObjList @.objs = [1] {
RndSeed @[0] { };
};

ProgType_List @.types = [1] {
DynEnumType @[0] { 
DynEnumItem_List @.enums = [2] {
DynEnumItem @[0] { };
DynEnumItem @[1] { };
};
};
};

ProgVar_List @.args = [5] {
ProgVar @[0] { };
ProgVar @[1] { };
ProgVar @[2] { };
ProgVar @[3] { };
ProgVar @[4] { };
};

ProgVar_List @.vars = [15] {
ProgVar @[0] { };
ProgVar @[1] { };
ProgVar @[2] { };
ProgVar @[3] { };
ProgVar @[4] { };
ProgVar @[5] { };
ProgVar @[6] { };
ProgVar @[7] { };
ProgVar @[8] { };
ProgVar @[9] { };
ProgVar @[10] { };
ProgVar @[11] { };
ProgVar @[12] { };
ProgVar @[13] { };
ProgVar @[14] { };
};

ProgEl_List @.init_code = [6] {
AssignExpr @[0] { };
MethodCall @[1] { 
ProgArg_List @.meth_args = [1] {
ProgArg @[0] { };
};
};
AssignExpr @[2] { };
NetCounterInit @[3] { };
IfElse @[4] { 
ProgEl_List @.true_code = [1] {
MethodCall @[0] { };
};

ProgEl_List @.false_code = [1] {
MethodCall @[0] { };
};
};
IfGuiPrompt @[5] { 
ProgEl_List @.yes_code = [2] {
MethodCall @[0] { };
PrintExpr @[1] { };
};
};
};

ProgEl_List @.prog_code = [13] {
AssignExpr @[0] { };
MethodCall @[1] { 
ProgArg_List @.meth_args = [1] {
ProgArg @[0] { };
};
};
NetCounterInit @[2] { };
MemberAssign @[3] { };
IfElse @[4] { 
ProgEl_List @.true_code = [2] {
MethodCall @[0] { };
PrintExpr @[1] { };
};
};
AssignExpr @[5] { };
ForLoop @[6] { 
ProgEl_List @.loop_code = [1] {
ForLoop @[0] { 
ProgEl_List @.loop_code = [1] {
UserScript @[0] { };
};
};
};
};
MemberAssign @[7] { };
OtherProgramVar @[8] { };
OtherProgramVar @[9] { };
ProgramCall @[10] { 
ProgArg_List @.prog_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
WhileLoop @[11] { 
ProgEl_List @.loop_code = [6] {
MemberAssign @[0] { };
ProgramCall @[1] { 
ProgArg_List @.prog_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
NetCounterIncr @[2] { };
IfBreak @[3] { };
MemberAssign @[4] { };
ProgramCall @[5] { 
ProgArg_List @.prog_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
};
};
MethodCall @[12] { };
};
};
Program @[2] { 
ProgVar_List @.args = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgVar_List @.vars = [5] {
ProgVar @[0] { };
ProgVar @[1] { };
ProgVar @[2] { };
ProgVar @[3] { };
ProgVar @[4] { };
};

ProgEl_List @.init_code = [2] {
NetCounterInit @[0] { };
AssignExpr @[1] { };
};

ProgEl_List @.prog_code = [9] {
NetCounterInit @[0] { };
AssignExpr @[1] { };
MethodCall @[2] { 
ProgArg_List @.meth_args = [1] {
ProgArg @[0] { };
};
};
MethodCall @[3] { };
NetDataLoop @[4] { 
ProgEl_List @.loop_code = [2] {
ProgramCall @[0] { 
ProgArg_List @.prog_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
IfElse @[1] { 
ProgEl_List @.true_code = [1] {
MethodCall @[0] { };
};
};
};
};
IfElse @[5] { 
ProgEl_List @.true_code = [1] {
MethodCall @[0] { };
};
};
MethodCall @[6] { };
ProgramCall @[7] { 
ProgArg_List @.prog_args = [1] {
ProgArg @[0] { };
};
};
MethodCall @[8] { };
};
};
Program @[3] { 
ProgVar_List @.args = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgVar_List @.vars = [9] {
ProgVar @[0] { };
ProgVar @[1] { };
ProgVar @[2] { };
ProgVar @[3] { };
ProgVar @[4] { };
ProgVar @[5] { };
ProgVar @[6] { };
ProgVar @[7] { };
ProgVar @[8] { };
};

ProgEl_List @.init_code = [2] {
NetCounterInit @[0] { };
AssignExpr @[1] { };
};

ProgEl_List @.prog_code = [11] {
NetCounterInit @[0] { };
AssignExpr @[1] { };
AssignExpr @[2] { };
AssignExpr @[3] { };
MethodCall @[4] { 
ProgArg_List @.meth_args = [1] {
ProgArg @[0] { };
};
};
MethodCall @[5] { };
NetDataLoop @[6] { 
ProgEl_List @.loop_code = [2] {
ProgramCall @[0] { 
ProgArg_List @.prog_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
IfElse @[1] { 
ProgEl_List @.true_code = [1] {
MethodCall @[0] { };
};
};
};
};
IfElse @[7] { 
ProgEl_List @.true_code = [1] {
MethodCall @[0] { };
};
};
MethodCall @[8] { };
ProgramCall @[9] { 
ProgArg_List @.prog_args = [1] {
ProgArg @[0] { };
};
};
MethodCall @[10] { };
};
};
Program @[4] { 
ProgVar_List @.args = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgVar_List @.vars = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgEl_List @.init_code = [1] {
NetCounterInit @[0] { };
};

ProgEl_List @.prog_code = [6] {
NetCounterInit @[0] { };
MethodCall @[1] { };
WhileLoop @[2] { 
ProgEl_List @.loop_code = [3] {
ProgramCall @[0] { 
ProgArg_List @.prog_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
NetCounterIncr @[1] { };
MethodCall @[2] { };
};
};
MethodCall @[3] { };
ProgramCall @[4] { 
ProgArg_List @.prog_args = [1] {
ProgArg @[0] { };
};
};
NetUpdateView @[5] { };
};
};
Program @[5] { 
ProgVar_List @.args = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgVar_List @.vars = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgEl_List @.init_code = [1] {
NetCounterInit @[0] { };
};

ProgEl_List @.prog_code = [6] {
NetCounterInit @[0] { };
MethodCall @[1] { };
WhileLoop @[2] { 
ProgEl_List @.loop_code = [3] {
ProgramCall @[0] { 
ProgArg_List @.prog_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
NetCounterIncr @[1] { };
MethodCall @[2] { };
};
};
MethodCall @[3] { };
ProgramCall @[4] { 
ProgArg_List @.prog_args = [1] {
ProgArg @[0] { };
};
};
NetUpdateView @[5] { };
};
};
Program @[6] { 
ProgVar_List @.args = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgVar_List @.vars = [3] {
ProgVar @[0] { };
ProgVar @[1] { };
ProgVar @[2] { };
};

ProgEl_List @.init_code = [1] {
NetCounterInit @[0] { };
};

ProgEl_List @.prog_code = [12] {
NetCounterInit @[0] { };
MethodCall @[1] { };
ProgramCall @[2] { 
ProgArg_List @.prog_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
ProgramCall @[3] { 
ProgArg_List @.prog_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
IfElse @[4] { 
ProgEl_List @.true_code = [1] {
MemberAssign @[0] { };
};

ProgEl_List @.false_code = [1] {
MemberAssign @[0] { };
};
};
MethodCall @[5] { };
IfElse @[6] { 
ProgEl_List @.true_code = [1] {
AssignExpr @[0] { };
};

ProgEl_List @.false_code = [1] {
AssignExpr @[0] { };
};
};
WhileLoop @[7] { 
ProgEl_List @.loop_code = [4] {
ProgramCall @[0] { 
ProgArg_List @.prog_args = [1] {
ProgArg @[0] { };
};
};
NetCounterIncr @[1] { };
IfContinue @[2] { };
IfBreak @[3] { };
};
};
MethodCall @[8] { };
IfElse @[9] { 
ProgEl_List @.true_code = [1] {
MethodCall @[0] { };
};
};
IfElse @[10] { 
ProgEl_List @.true_code = [1] {
MethodCall @[0] { };
};
};
NetUpdateView @[11] { };
};
};
Program @[7] { 
ProgVar_List @.args = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgVar_List @.vars = [3] {
ProgVar @[0] { };
ProgVar @[1] { };
ProgVar @[2] { };
};

ProgEl_List @.init_code = [1] {
NetCounterInit @[0] { };
};

ProgEl_List @.prog_code = [12] {
NetCounterInit @[0] { };
MethodCall @[1] { };
ProgramCall @[2] { 
ProgArg_List @.prog_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
ProgramCall @[3] { 
ProgArg_List @.prog_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
IfElse @[4] { 
ProgEl_List @.true_code = [1] {
MemberAssign @[0] { };
};

ProgEl_List @.false_code = [1] {
MemberAssign @[0] { };
};
};
MethodCall @[5] { };
IfElse @[6] { 
ProgEl_List @.true_code = [1] {
AssignExpr @[0] { };
};

ProgEl_List @.false_code = [1] {
AssignExpr @[0] { };
};
};
WhileLoop @[7] { 
ProgEl_List @.loop_code = [4] {
ProgramCall @[0] { 
ProgArg_List @.prog_args = [1] {
ProgArg @[0] { };
};
};
NetCounterIncr @[1] { };
IfContinue @[2] { };
IfBreak @[3] { };
};
};
MethodCall @[8] { };
IfElse @[9] { 
ProgEl_List @.true_code = [1] {
MethodCall @[0] { };
};
};
IfElse @[10] { 
ProgEl_List @.true_code = [1] {
MethodCall @[0] { };
};
};
NetUpdateView @[11] { };
};
};
Program @[8] { 
ProgVar_List @.args = [1] {
ProgVar @[0] { };
};

ProgVar_List @.vars = [1] {
ProgVar @[0] { };
};

ProgEl_List @.prog_code = [3] {
MethodCall @[0] { };
NetUpdateView @[1] { };
ProgramCall @[2] { 
ProgArg_List @.prog_args = [1] {
ProgArg @[0] { };
};
};
};
};
Program @[9] { 
ProgVar_List @.args = [1] {
ProgVar @[0] { };
};

ProgVar_List @.vars = [1] {
ProgVar @[0] { };
};

ProgEl_List @.prog_code = [3] {
MethodCall @[0] { };
NetUpdateView @[1] { };
ProgramCall @[2] { 
ProgArg_List @.prog_args = [1] {
ProgArg @[0] { };
};
};
};
};
Program @[10] { 
ProgObjList @.objs = [1] {
LayerWriter @[0] { 
LayerDataEl_List @.layer_data = [5] {
LayerWriterEl @[0] { };
LayerWriterEl @[1] { };
LayerWriterEl @[2] { };
LayerWriterEl @[3] { };
LayerWriterEl @[4] { };
};
};
};

ProgVar_List @.args = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgVar_List @.vars = [1] {
ProgVar @[0] { };
};

ProgEl_List @.init_code = [2] {
MethodCall @[0] { 
ProgArg_List @.meth_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
MethodCall @[1] { 
ProgArg_List @.meth_args = [1] {
ProgArg @[0] { };
};
};
};

ProgEl_List @.prog_code = [1] {
MethodCall @[0] { };
};
};
Program @[11] { 
ProgObjList @.objs = [1] {
LayerWriter @[0] { 
LayerDataEl_List @.layer_data = [5] {
LayerWriterEl @[0] { };
LayerWriterEl @[1] { };
LayerWriterEl @[2] { };
LayerWriterEl @[3] { };
LayerWriterEl @[4] { };
};
};
};

ProgVar_List @.args = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgVar_List @.vars = [1] {
ProgVar @[0] { };
};

ProgEl_List @.init_code = [2] {
MethodCall @[0] { 
ProgArg_List @.meth_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
MethodCall @[1] { 
ProgArg_List @.meth_args = [1] {
ProgArg @[0] { };
};
};
};

ProgEl_List @.prog_code = [1] {
MethodCall @[0] { };
};
};
Program @[12] { 
ProgObjList @.objs = [1] {
NetMonitor @[0] { 
NetMonItem_List @.items = [10] {
NetMonItem @[0] { };
NetMonItem @[1] { };
NetMonItem @[2] { };
NetMonItem @[3] { };
NetMonItem @[4] { };
NetMonItem @[5] { };
NetMonItem @[6] { };
NetMonItem @[7] { };
NetMonItem @[8] { };
NetMonItem @[9] { };
};
};
};

ProgVar_List @.args = [1] {
ProgVar @[0] { };
};

ProgVar_List @.vars = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgEl_List @.init_code = [3] {
MethodCall @[0] { 
ProgArg_List @.meth_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
MethodCall @[1] { 
ProgArg_List @.meth_args = [1] {
ProgArg @[0] { };
};
};
MethodCall @[2] { 
ProgArg_List @.meth_args = [1] {
ProgArg @[0] { };
};
};
};

ProgEl_List @.prog_code = [4] {
MethodCall @[0] { };
MethodCall @[1] { };
MethodCall @[2] { };
MethodCall @[3] { 
ProgArg_List @.meth_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
};
};
Program @[13] { 
ProgObjList @.objs = [1] {
NetMonitor @[0] { 
NetMonItem_List @.items = [16] {
NetMonItem @[0] { };
NetMonItem @[1] { };
NetMonItem @[2] { };
NetMonItem @[3] { };
NetMonItem @[4] { };
NetMonItem @[5] { };
NetMonItem @[6] { };
NetMonItem @[7] { };
NetMonItem @[8] { };
NetMonItem @[9] { };
NetMonItem @[10] { };
NetMonItem @[11] { };
NetMonItem @[12] { };
NetMonItem @[13] { };
NetMonItem @[14] { };
NetMonItem @[15] { };
};
};
};

ProgVar_List @.args = [1] {
ProgVar @[0] { };
};

ProgVar_List @.vars = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgEl_List @.init_code = [3] {
MethodCall @[0] { 
ProgArg_List @.meth_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
MethodCall @[1] { 
ProgArg_List @.meth_args = [1] {
ProgArg @[0] { };
};
};
MethodCall @[2] { 
ProgArg_List @.meth_args = [1] {
ProgArg @[0] { };
};
};
};

ProgEl_List @.prog_code = [5] {
IfReturn @[0] { };
MethodCall @[1] { };
MethodCall @[2] { };
MethodCall @[3] { };
MethodCall @[4] { 
ProgArg_List @.meth_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
};
};
Program @[14] { 
ProgObjList @.objs = [1] {
NetMonitor @[0] { 
NetMonItem_List @.items = [6] {
NetMonItem @[0] { };
NetMonItem @[1] { };
NetMonItem @[2] { };
NetMonItem @[3] { };
NetMonItem @[4] { };
NetMonItem @[5] { };
};
};
};

ProgVar_List @.args = [1] {
ProgVar @[0] { };
};

ProgVar_List @.vars = [3] {
ProgVar @[0] { };
ProgVar @[1] { };
ProgVar @[2] { };
};

ProgEl_List @.init_code = [4] {
AssignExpr @[0] { };
MethodCall @[1] { 
ProgArg_List @.meth_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
MethodCall @[2] { 
ProgArg_List @.meth_args = [1] {
ProgArg @[0] { };
};
};
MethodCall @[3] { 
ProgArg_List @.meth_args = [1] {
ProgArg @[0] { };
};
};
};

ProgEl_List @.prog_code = [4] {
MethodCall @[0] { };
MethodCall @[1] { };
AssignExpr @[2] { };
MethodCall @[3] { };
};
};
Program @[15] { 
ProgVar_List @.args = [1] {
ProgVar @[0] { };
};

ProgVar_List @.vars = [6] {
ProgVar @[0] { };
ProgVar @[1] { };
ProgVar @[2] { };
ProgVar @[3] { };
ProgVar @[4] { };
ProgVar @[5] { };
};

ProgEl_List @.prog_code = [6] {
IfReturn @[0] { };
MiscCall @[1] { 
ProgArg_List @.meth_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
MiscCall @[2] { 
ProgArg_List @.meth_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
AssignExpr @[3] { };
MethodCall @[4] { 
ProgArg_List @.meth_args = [4] {
ProgArg @[0] { };
ProgArg @[1] { };
ProgArg @[2] { };
ProgArg @[3] { };
};
};
MethodCall @[5] { 
ProgArg_List @.meth_args = [2] {
ProgArg @[0] { };
ProgArg @[1] { };
};
};
};
};
Program @[16] { 
ProgVar_List @.args = [2] {
ProgVar @[0] { };
ProgVar @[1] { };
};

ProgVar_List @.vars = [15] {
ProgVar @[0] { };
ProgVar @[1] { };
ProgVar @[2] { };
ProgVar @[3] { };
ProgVar @[4] { };
ProgVar @[5] { };
ProgVar @[6] { };
ProgVar @[7] { };
ProgVar @[8] { };
ProgVar @[9] { };
ProgVar @[10] { };
ProgVar @[11] { };
ProgVar @[12] { };
ProgVar @[13] { };
ProgVar @[14] { };
};

ProgEl_List @.prog_code = [4] {
AssignExpr @[0] { };
AssignExpr @[1] { };
AssignExpr @[2] { };
IfElse @[3] { 
ProgEl_List @.true_code = [4] {
IfElse @[0] { 
ProgEl_List @.true_code = [2] {
ForLoop @[0] { 
ProgEl_List @.loop_code = [1] {
MemberAssign @[0] { };
};
};
MemberAssign @[1] { };
};

ProgEl_List @.false_code = [2] {
ForLoop @[0] { 
ProgEl_List @.loop_code = [1] {
MemberAssign @[0] { };
};
};
MemberAssign @[1] { };
};
};
AssignExpr @[1] { };
AssignExpr @[2] { };
IfElse @[3] { 
ProgEl_List @.true_code = [4] {
MemberAssign @[0] { };
MemberAssign @[1] { };
MemberAssign @[2] { };
MemberAssign @[3] { };
};

ProgEl_List @.false_code = [4] {
MemberAssign @[0] { };
MemberAssign @[1] { };
MemberAssign @[2] { };
MemberAssign @[3] { };
};
};
};

ProgEl_List @.false_code = [1] {
ForLoop @[0] { 
ProgEl_List @.loop_code = [2] {
MemberAssign @[0] { };
MemberAssign @[1] { };
};
};
};
};
};
};
};
};

DataViewer_List @.viewers = [1] {
MainWindowViewer @[0] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
UserDataItem @[1] { };
UserDataItem @[2] { };
UserDataItem @[3] { };
UserDataItem @[4] { };
UserDataItem @[5] { };
};

ToolBar_List @.toolbars = [1] {
ToolBar @[0] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
};
};
};

FrameViewer_List @.frames = [3] {
tabBrowseViewer @[0] { };
PanelViewer @[1] { };
T3DataViewer @[2] { 
T3DataViewFrame_List @.frames = [4] {
T3DataViewFrame @[0] { 
T3DataView_List @.children = [1] {
NetView @[0] { 
ScaleRange_List @.scale_ranges = [23] {
ScaleRange @[0] { };
ScaleRange @[1] { };
ScaleRange @[2] { };
ScaleRange @[3] { };
ScaleRange @[4] { };
ScaleRange @[5] { };
ScaleRange @[6] { };
ScaleRange @[7] { };
ScaleRange @[8] { };
ScaleRange @[9] { };
ScaleRange @[10] { };
ScaleRange @[11] { };
ScaleRange @[12] { };
ScaleRange @[13] { };
ScaleRange @[14] { };
ScaleRange @[15] { };
ScaleRange @[16] { };
ScaleRange @[17] { };
ScaleRange @[18] { };
ScaleRange @[19] { };
ScaleRange @[20] { };
ScaleRange @[21] { };
ScaleRange @[22] { };
};
};
};
};
T3DataViewFrame @[1] { 
T3DataView_List @.children = [1] {
GraphTableView @[0] { 
T3DataView_List @.children = [16] {
GraphColView @[0] { };
GraphColView @[1] { };
GraphColView @[2] { };
GraphColView @[3] { };
GraphColView @[4] { };
GraphColView @[5] { };
GraphColView @[6] { };
GraphColView @[7] { };
GraphColView @[8] { };
GraphColView @[9] { };
GraphColView @[10] { };
GraphColView @[11] { };
GraphColView @[12] { };
GraphColView @[13] { };
GraphColView @[14] { };
GraphColView @[15] { };
};
};
};
};
T3DataViewFrame @[2] { 
T3DataView_List @.children = [1] {
GraphTableView @[0] { 
T3DataView_List @.children = [6] {
GraphColView @[0] { };
GraphColView @[1] { };
GraphColView @[2] { };
GraphColView @[3] { };
GraphColView @[4] { };
GraphColView @[5] { };
};
};
};
};
T3DataViewFrame @[3] { 
T3DataView_List @.children = [1] {
GraphTableView @[0] { 
T3DataView_List @.children = [11] {
GraphColView @[0] { };
GraphColView @[1] { };
GraphColView @[2] { };
GraphColView @[3] { };
GraphColView @[4] { };
GraphColView @[5] { };
GraphColView @[6] { };
GraphColView @[7] { };
GraphColView @[8] { };
GraphColView @[9] { };
GraphColView @[10] { };
};
};
};
};
};
};
};

DockViewer_List @.docks = [1] {
ToolBoxDockViewer @[0] { 
UserDataItem_List @*(.user_data_) { 
UserDataItem @[0] { };
UserDataItem @[1] { };
UserDataItem @[2] { };
UserDataItem @[3] { };
UserDataItem @[4] { };
UserDataItem @[5] { };
};
};
};
};
};

Network_Group @.networks = [1] {
LeabraNetwork @[0] { 
BaseSpec_Group @.specs = [3] {
ConSpec @[0] { };
UniformRndPrjnSpec @[1] { };
UniformRndPrjnSpec @[2] { };
BaseSpec_Group @.gp[0] = [10] { 
FullPrjnSpec @[0] { };
OneToOnePrjnSpec @[1] { };
TesselPrjnSpec @[2] { 
BaseSpec_Group @.children = [1] {
TesselPrjnSpec @[0] { 
TessEl_List @.send_offs = [18] {
TessEl @[0] { };
TessEl @[1] { };
TessEl @[2] { };
TessEl @[3] { };
TessEl @[4] { };
TessEl @[5] { };
TessEl @[6] { };
TessEl @[7] { };
TessEl @[8] { };
TessEl @[9] { };
TessEl @[10] { };
TessEl @[11] { };
TessEl @[12] { };
TessEl @[13] { };
TessEl @[14] { };
TessEl @[15] { };
TessEl @[16] { };
TessEl @[17] { };
};
};
};

TessEl_List @.send_offs = [18] {
TessEl @[0] { };
TessEl @[1] { };
TessEl @[2] { };
TessEl @[3] { };
TessEl @[4] { };
TessEl @[5] { };
TessEl @[6] { };
TessEl @[7] { };
TessEl @[8] { };
TessEl @[9] { };
TessEl @[10] { };
TessEl @[11] { };
TessEl @[12] { };
TessEl @[13] { };
TessEl @[14] { };
TessEl @[15] { };
TessEl @[16] { };
TessEl @[17] { };
};
};
TesselPrjnSpec @[3] { 
TessEl_List @.send_offs = [9] {
TessEl @[0] { };
TessEl @[1] { };
TessEl @[2] { };
TessEl @[3] { };
TessEl @[4] { };
TessEl @[5] { };
TessEl @[6] { };
TessEl @[7] { };
TessEl @[8] { };
};
};
TesselPrjnSpec @[4] { 
TessEl_List @.send_offs = [12] {
TessEl @[0] { };
TessEl @[1] { };
TessEl @[2] { };
TessEl @[3] { };
TessEl @[4] { };
TessEl @[5] { };
TessEl @[6] { };
TessEl @[7] { };
TessEl @[8] { };
TessEl @[9] { };
TessEl @[10] { };
TessEl @[11] { };
};
};
TesselPrjnSpec @[5] { 
TessEl_List @.send_offs = [2] {
TessEl @[0] { };
TessEl @[1] { };
};
};
TesselPrjnSpec @[6] { 
TessEl_List @.send_offs = [12] {
TessEl @[0] { };
TessEl @[1] { };
TessEl @[2] { };
TessEl @[3] { };
TessEl @[4] { };
TessEl @[5] { };
TessEl @[6] { };
TessEl @[7] { };
TessEl @[8] { };
TessEl @[9] { };
TessEl @[10] { };
TessEl @[11] { };
};
};
TesselPrjnSpec @[7] { 
TessEl_List @.send_offs = [9] {
TessEl @[0] { };
TessEl @[1] { };
TessEl @[2] { };
TessEl @[3] { };
TessEl @[4] { };
TessEl @[5] { };
TessEl @[6] { };
TessEl @[7] { };
TessEl @[8] { };
};
};
TesselPrjnSpec @[8] { 
TessEl_List @.send_offs = [4] {
TessEl @[0] { };
TessEl @[1] { };
TessEl @[2] { };
TessEl @[3] { };
};
};
OneToOnePrjnSpec @[9] { };
};
BaseSpec_Group @.gp[1] = [7] { 
LeabraBiasSpec @[0] { 
BaseSpec_Group @.children = [1] {
LeabraBiasSpec @[0] { };
};
};
LeabraConSpec @[1] { };
LeabraConSpec @[2] { 
BaseSpec_Group @.children = [2] {
LeabraConSpec @[0] { };
LeabraConSpec @[1] { };
};
};
LeabraConSpec @[3] { 
BaseSpec_Group @.children = [7] {
LeabraConSpec @[0] { };
LeabraConSpec @[1] { };
LeabraConSpec @[2] { };
LeabraConSpec @[3] { };
LeabraConSpec @[4] { };
LeabraConSpec @[5] { };
LeabraConSpec @[6] { };
};
};
LeabraConSpec @[4] { };
LeabraConSpec @[5] { };
LeabraConSpec @[6] { };
};
BaseSpec_Group @.gp[2] = [2] { 
LeabraUnitSpec @[0] { 
BaseSpec_Group @.children = [5] {
LeabraUnitSpec @[0] { };
LeabraUnitSpec @[1] { };
LeabraUnitSpec @[2] { };
LeabraUnitSpec @[3] { 
BaseSpec_Group @.children = [3] {
LeabraUnitSpec @[0] { };
LeabraUnitSpec @[1] { 
Schedule @.noise_sched = [4] {
SchedItem @[0] { };
SchedItem @[1] { };
SchedItem @[2] { };
SchedItem @[3] { };
};
};
LeabraUnitSpec @[2] { };
};
};
LeabraUnitSpec @[4] { };
};
};
LeabraUnitSpec @[1] { };
};
BaseSpec_Group @.gp[3] = [2] { 
LeabraLayerSpec @[0] { 
BaseSpec_Group @.children = [7] {
LeabraLayerSpec @[0] { };
LeabraLayerSpec @[1] { };
LeabraLayerSpec @[2] { };
LeabraLayerSpec @[3] { };
LeabraLayerSpec @[4] { };
LeabraLayerSpec @[5] { };
LeabraLayerSpec @[6] { };
};
};
LeabraLayerSpec @[1] { 
BaseSpec_Group @.children = [2] {
LeabraLayerSpec @[0] { };
LeabraLayerSpec @[1] { };
};
};
};
};

Layer_Group @.layers = [9] {
LeabraLayer @[0] { 
Unit_Group @.units = [25] {
};
};
LeabraLayer @[1] { 
Projection_Group @.projections = [5] {
LeabraPrjn @[0] { };
LeabraPrjn @[1] { };
LeabraPrjn @[2] { };
LeabraPrjn @[3] { };
LeabraPrjn @[4] { };
};

Unit_Group @.units = [36] {
};
};
LeabraLayer @[2] { 
Unit_Group @.units = [4] {
};
};
LeabraLayer @[3] { 
Projection_Group @.projections = [3] {
LeabraPrjn @[0] { };
LeabraPrjn @[1] { };
LeabraPrjn @[2] { };
};

Unit_Group @.units = [4] {
};
};
LeabraLayer @[4] { 
Projection_Group @.projections = [2] {
LeabraPrjn @[0] { };
LeabraPrjn @[1] { };
};

Unit_Group @.units = [2] {
};
};
LeabraLayer @[5] { 
Projection_Group @.projections = [2] {
LeabraPrjn @[0] { };
LeabraPrjn @[1] { };
};

Unit_Group @.units = [2] {
};
};
LeabraLayer @[6] { 
Projection_Group @.projections = [2] {
LeabraPrjn @[0] { };
LeabraPrjn @[1] { };
};

Unit_Group @.units = [4] {
};
};
LeabraLayer @[7] { 
Projection_Group @.projections = [2] {
LeabraPrjn @[0] { };
LeabraPrjn @[1] { };
};

Unit_Group @.units = [2] {
};
};
LeabraLayer @[8] { 
Projection_Group @.projections = [2] {
LeabraPrjn @[0] { };
LeabraPrjn @[1] { };
};

Unit_Group @.units = [9] {
};
};
};
};
};
};
LeabraProject .projects[0] {
name="Project_0";
desc=;
tags=;
templates {
name=;
el_typ=taBase;
el_def=0;
};
docs {
name=;
el_typ=taDoc;
el_def=0;
taDoc @[0] {
name="ProjectDocs";
auto_open=1;
text="<html>
<head></head>
<body>
= Probabilistic Classification Learning in the Basal Ganglia =


* GENERAL USAGE NOTE: To start, it is usually a good idea to do <code>Object/Edit Dialog</code> in
the menu just above this text, which will open this documentation in a separate window that you can more easily come back to.  If your screen is small, you may also want to make this new window \"Always on Top\": e.g., in Linux, <code>Emergent-logo-at-top-left-></code> <code> Advanced-> Keep Above Others</code>).   Alternatively, you can always return to this document by clicking on the <code>ProjectDocs</code> tab at the top of this middle panel.


This project replicates the effect described in Frank (2005), in which a basal ganglia network can learn via pure reinforcement learning to select between complex probabilistic stimulus-response mappings in the \"weather prediction\" task, while networks with simulated Parkinson's disease are impaired.

Each of the four possible 'cues' in the task are represented by a column of  units in the Input layer, and anywhere from one to three cues are presented at a time. 
The relationship between particular cues present and probability of a given response (sun or rain, represented by R1 and R2 in the model) is highly probabilistic and combinatorial. For those interested in the specific probabilistic weather prediction input-output mappings and the frequency of occurrence of each cue, see  Knowlton et al (1994) <i>Learning & Memory</i>
which is represented in the \"Train_WeatherPred\" input data table in the tree on the left.

The project is set up to run four epochs, consisting of one hundred trials each, for a total of 400 trials. Networks are tested before training, and after each epoch of training, by testing for optimal performance 
(using the TestWP_Optimal InputData). Performance on this test is monitored in the [[.T3Tab.EpochOutputData]] graph, counting the number of errors made out of a total of 12 possible (so chance performance of 50% is 6 errors). In this measure, errors are counted not as a function of feedback in each trial during training itself (which is probabilistic) but rather in terms of the best (most optimal) choice. 

Note that this test is also administered to the model at the very beginning, prior to any training, as a measure of baseline performance (should be chance on average), and that during this test there is no 'feedback' (DA bursts or dips which would otherwise drive learning).

 
For intact network performance, make sure the number of intact SNc units is set to 4 (out of 4 units), the DA burst value is set to 1 (corresponding to maximal phasic burst firing rate) and the DA dip value is set to 0 (minimum phasic dip DA firing rate). These values are set in the  [[.PanelTab.MasterControl]] control panel.

To monitor performance across multiple networks, first save a Data Log file to store the data. Open the <code>data->OutputData subgroup</code> tree in the '''Tree''' window (far left) and click on <code>EpochOutputData</code> to display the data table (which is where the raw data is stored that is then plotted in the graph on the right). Click on <code>Object->Save Data Log</code>). Make sure to name this logfile with some reference to the current dopamine settings, so that you can properly interpret the data (e.g., name this 'Intact_epc.dat').  To run a set of networks on the task, expand the <code> programs</code> tab int the \"Tree\" window on the fat left, and then under <code> LeabraAll_Std_subgrpup</code>, click on the <code.LeabraBatch</code> object. Hit Init and Run on the bottom of the resulting [[.PanelTab.LeabraBatch]] panel that will open. This  will run a set of 25 networks, and store the data in the logfile you just created.  

(To speed things up when running a batch of networks, turn off the display of the network by clicking on the appropriate tab that you want to view and check off the <code>Display!</code> box on the top left.)


The output in the cnt_err column of the [[.PanelTab.EpochOutputData]] log file is the number of errors (out of 12) made in the optimal test environment, plotted as a function of epoch number, for each run of the network in the batch. Because the data are noisy (probabilistic rewards combined with random input weights which could by chance lead to particularly good or bad performance), we need to average across multiple networks with different sets of initial weights. To analyze the data, in the [[.PanelTab.EpochOutputData]] tab, click on  <code>DataProc->Group Mean SEM</code>. In the dialog box that pops up, make sure the   <code>dest_data</code> is set to <code>NULL</code>; this will create a new output data log under the AnalysisData_subgroup in the left frame, called <code>EpochOutputData_Group</code>. Also set  the first <code>gp_col1</code> to \"epoch\" so that the script can analyze performance as a function of each epoch, averaged across all networks. Set all other fields to <code>NULL</code> and click <code>Ok</code>. Now open the new analysis  <code>EpochOutputData_Group</code> log. You should see the statistics (mean, standard error) for each variable that was monitored in the EpochOutputData log. The relevant ones are cnt_err_mean and cnt_err_sem.  You should see that intact networks learn to discriminate between the complex probabilistic contingencies in the weather prediction task as training progresses (error decreases within 2-4 epochs, corresponding to 200-400 trials of training). They usually don't achieve perfectly optimal performance in the task, still making on average 20-25% errors, but this is also the case for healthy humans performing the task! (Also remember the network is learning using pure reinforcement learning and not error-driven learning).

To simulate PD, set the number of intact DA units to 1 in the  [[.PanelTab.MasterControl]] control panel. This sets the number of SNc units that are connected to the Striatum to 1 (out of 4). Note that the units themselves are not actually lesioned, because leabra applies a normalization factor when computing net input to layers that depends on the number of units in the sending layer --  so that it would treat a single unit layer as effectively four times greater input to other layers compared with a four unit layer. This makes sense for many general neural net applications (so that the total number of units in a region doesn't parametrically affect downstream processing), but is not useful when we want to simulate partial lesion effects!  To circumvent this problem we simply eliminate the synaptic weights from 3 out of the 4 DA units to Striatum (test this by pressing r.wt and clicking on striatal units in a PD network -- you should see connectivity to only one out of four SNc units). Don't be misled by the activation of all DA units after making this manipulation -- only the connected ones actually influence processing in the BG. This reduction in number of intact DA units  leads to effectively reduced tonic and phasic DA levels in the Striatum. 

Set a new log file name in the [[.PanelTab.EpochOutputData]] object, and give it a new name (e.g, with a PD descriptor). Hit Init and Run on the [[.PanelTab.LeabraBatch]] panel. When it's done, analyze the group mean and standard error as above. You should see that Parkinson's networks are impaired at learning compared with intact networks, due to a reduced dynamic range of DA signals for resolving Go/NoGo differences in stimulus-response-reward probabilities. 
 

Note that the Parkinson's deficit can also be captured with other ways of reducing the fidelity of DA signals. For example, if you set the number of intact DA units to 2 instead of 1 in the [[.PanelTab.MasterControl]] you should see that performance with 50% DA damage is relatively intact. consistent with the existence of redundancy in the DA system, whereby PD symptoms do not arise until a substantial proportion (~75%) of DA cells are damaged. But in this condition, the system is more dependent on having maximal DA bursting during rewards. To see this, reduce the \"DA burst real val\" to 0.04 instead of 1. (This value is the net input applied externally to the DA units and does NOT reflect the activation of the unit itself, which is a nonlinear function of this input. A net input of .04 corresponds to a phasic firing rate of roughly 0.8, which is still a burst relative to the tonic level (.03 net input, 0.5 firing rate) but represents a reduction in phasic bursting compared to the maximal firing rate value of 1.0). When this reduction in phasic DA is combined with DA unit damage, you should see more reliable probabilistic learning deficits relative to intact networks. Finally, set the number of intact DA units back to 4, and run another batch while maintaining the reduced phasic DA levels. You should see that with fully intact DA units, networks are still able to learn this complex probabilistic learning task with reduced phasic DA signals -- again showing robustness of the system to fluctuations in DA, which only become critical when combined with DA unit damage.
 

Finally, it was shown in Frank (2005) that the indirect \"NoGo\" pathway is critical for robust learning, in that networks without this pathway, even controlling for other parameters in the resulting network, were reliably impaired compared to the full model. These results demonstrate that the combined Go/NoGo learning system is required for learning from the full dynamic range of DA signals and for enhancing the contrast between subtly different probabilistic reinforcement values in this complex task. 


= PD Tremor, and Oscillations =
With very low DA levels, you may also see  some oscillations in STN and GP layers on some trials (these correspond to Parkinson's tremor; see Frank, 2006 for detailed discussion). You can look at these more carefully in the [[.T3Tab.CycleOutputData]]  graph logs where activity levels of the various layers are recorded. The easiest way to see this is to set the tonic DA value to 0 instead of the default .03. This will eliminate all DA unit activity during response selection (note this would not work for simulating PD in general because it still allows for maximal DA burst firing during rewards). Then increase the number of cycles that the network processes in each test trial so that you have more room to see oscillations -- change the \"test cycles expr\" value from 100 to 200. Now  Run a few trials using the <code>LeabraTestEpoch</code> process, and watch the activity levels of the STN and GP in the [[.T3Tab.CycleOutputData]] graph log. You might have to run more than one trial to see the oscillations, which should not (or only rarely) be seen at all in the intact state.  (Note that the same oscillations will be seen in the standard way of simulating PD above, by reducing the num_intact_snc_units to 1, but in that case you have to first Init and step through a trial in the Batch or Train process, which is where the removal of DA connections is executed, before running the Test trials to observe unit activity across cycles in the CycleOutputData graph -- which is configured to plot only test activity).
 

</body>
</html>
";
};
};
wizards {
name=;
el_typ=LeabraWizard;
el_def=0;
LeabraWizard @[0] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NO_CLIP";
value 1 0=1;
};
};
name="LeabraWizard_2";
auto_open=0;
n_layers=3;
layer_cfg {
name=;
el_typ=LayerWizEl;
el_def=0;
LayerWizEl @[0] {
name="LayerWizEl";
n_units=25;
io_type=76;
};
LayerWizEl @[1] {
name="LayerWizEl";
n_units=25;
io_type=INPUT;
};
LayerWizEl @[2] {
name="LayerWizEl";
n_units=25;
io_type=7274496;
};
};
connectivity=BIDIRECTIONAL;
default_net_type=LeabraNetwork;
};
};
edits {
name=;
el_typ=SelectEdit;
el_def=0;
SelectEdit @[0] {
name="MasterControl";
auto_edit=1;
desc=;
mbrs {
name=;
el_typ=EditMbrItem;
el_def=0;
EditMbrItem @[0] {
label="tonic DA real_val";
desc=" real value";
base=.projects[0].programs.gp[0][16].vars[11]$0$;
mbr=ProgVar::real_val;
};
EditMbrItem @[1] {
label="DA burst real_val";
desc=" real value";
base=.projects[0].programs.gp[0][16].vars[14]$1$;
mbr=ProgVar::real_val;
};
EditMbrItem @[2] {
label="DA dip real_val";
desc=" real value";
base=.projects[0].programs.gp[0][16].vars[13]$2$;
mbr=ProgVar::real_val;
};
EditMbrItem @[3] {
label="num intact snc units ";
desc=" integer value (also for enum types)";
base=.projects[0].programs.gp[0][1].vars[11]$3$;
mbr=ProgVar::int_val;
};
EditMbrItem @[4] {
label="test cycles  ";
desc=" the expression to compute and assign to the member<br>  :  enter the expression here -- you can just type in names of program variables or literal values. enclose strings in double quotes. variable names will be checked and automatically updated<br>  var lookup!:  lookup a program variable and add it to the current expression (this field then returns to empty/NULL)<br>  enum lookup!:  lookup a dynamic enum variable and add it to the current expression (this field then returns to empty/NULL)";
base=.projects[0].programs.gp[0][7].prog_code[4].false_code[0]$4$;
mbr=MemberAssign::expr;
};
};
mths {
name=;
el_typ=EditMthItem;
el_def=0;
group_type=GT_BUTTONS;
};
};
};
data {
name=;
el_typ=DataTable;
el_def=0;
DataTable_Group @.gp[0] {
name="InputData";
el_typ=DataTable;
el_def=0;
DataTable @[0] {
name="Train_Freq";
desc=;
data {
name="data";
el_typ=String_Data;
el_def=0;
String_Data @[0] {
name="Name";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[40] "80vs20";"80vs20";"80vs20";"80vs20";"80vs20";"40vs60";"40vs60";"40vs60";"80vs20";"80vs20";"80vs20";"80vs20";"80vs20";"40vs60";"40vs60";"40vs60";"40vs60";"40vs60";"40vs60";"40vs60";"20vs80";"20vs80";"20vs80";"20vs80";"20vs80";"20vs80";"20vs80";"20vs80";"20vs80";"20vs80";"60vs40";"60vs40";"60vs40";"60vs40";"60vs40";"60vs40";"60vs40";"60vs40";"60vs40";"60vs40";};
};
float_Data @[1] {
name="Input";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 5;5;};
calc_expr {
expr=;
};
ar {
name=;
[5 5 40] 1;0;0;0;0;1;0;0;0;0.0099999998;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0.0099999998;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0.0099999998;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0.0099999998;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0.0099999998;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0.0099999998;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0.0099999998;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0.0099999998;0;0;0;1;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0.0099999998;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0.0099999998;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0.0099999998;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0.0099999998;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0.0099999998;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0.0099999998;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0.0099999998;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0.0099999998;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0.0099999998;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0.0099999998;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0.0099999998;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0.0099999998;0;0;0;1;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0.0099999998;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0.0099999998;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0.0099999998;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0.0099999998;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0.0099999998;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0.0099999998;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0.0099999998;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0.0099999998;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0.0099999998;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0.0099999998;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0.0099999998;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0.0099999998;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0.0099999998;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0.0099999998;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0.0099999998;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0.0099999998;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0.0099999998;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0.0099999998;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0.0099999998;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0.0099999998;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;};
};
float_Data @[2] {
name="Output";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;1;};
calc_expr {
expr=;
};
ar {
name=;
[2 1 40] 1;0;1;0;1;0;1;0;0;1;0;1;0;1;1;0;1;0;1;0;1;0;1;0;0;1;1;0;1;0;0;1;0;1;0;1;0;1;1;0;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;0;1;0;1;0;1;0;1;};
};
float_Data @[3] {
name="SNc";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;2;};
calc_expr {
expr=;
};
ar {
name=;
[2 2 40] 100;100;100;100;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0;0;0;0;0;0;0;0;0;0;0;0;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0;0;0;0;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0;0;0;0;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;100;100;100;100;100;100;100;100;0;0;0;0;0;0;0;0;100;100;100;100;100;100;100;100;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0.035;0;0;0;0;};
};
float_Data @[4] {
name="Motor_Cortex";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;2;};
calc_expr {
expr=;
};
ar {
name=;
[2 2 40] 1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;0;1;0;1;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;1;0;1;0;0;1;0;1;0;1;0;1;1;0;1;0;1;0;1;0;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;};
};
};
data_flags=SAVE_ROWS|AUTO_CALC;
auto_load=NO_AUTO_LOAD;
auto_load_file=;
keygen 4 0=0;
};
DataTable @[1] {
name="TestFreq";
desc=;
data {
name="data";
el_typ=String_Data;
el_def=0;
String_Data @[0] {
name="Name";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[4] "80";"60";"80";"60";};
};
float_Data @[1] {
name="Input";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 5;5;};
calc_expr {
expr=;
};
ar {
name=;
[5 5 4] 1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;};
};
float_Data @[2] {
name="Output";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;1;};
calc_expr {
expr=;
};
ar {
name=;
[2 1 4] 1;0;0;1;0;1;1;0;};
};
float_Data @[3] {
name="SNc";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;2;};
calc_expr {
expr=;
};
ar {
name=;
[2 2 4] 0.029999999;0.029999999;0.029999999;0.029999999;0.029999999;0.029999999;0.029999999;0.029999999;0.029999999;0.029999999;0.029999999;0.029999999;0.029999999;0.029999999;0.029999999;0.029999999;};
};
};
data_flags=SAVE_ROWS|AUTO_CALC;
auto_load=NO_AUTO_LOAD;
auto_load_file=;
keygen 4 0=0;
};
DataTable @[2] {
name="Train_WeatherPred";
desc=;
data {
name="data";
el_typ=String_Data;
el_def=0;
String_Data @[0] {
name="Name";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[100] "Event_1";"Event_2";"Event_3";"Event_4";"Event_5";"Event_6";"Event_7";"Event_8";"Event_9";"Event_10";"Event_11";"Event_12";"Event_13";"Event_14";"Event_15";"Event_16";"Event_17";"Event_18";"Event_19";"Event_20";"Event_21";"Event_22";"Event_23";"Event_24";"Event_25";"Event_26";"Event_27";"Event_28";"Event_29";"Event_30";"Event_31";"Event_32";"Event_33";"Event_34";"Event_35";"Event_36";"Event_37";"Event_38";"Event_39";"Event_40";"Event_41";"Event_42";"Event_43";"Event_44";"Event_45";"Event_46";"Event_47";"Event_48";"Event_49";"Event_50";"Event_51";"Event_52";"Event_53";"Event_54";"Event_55";"Event_56";"Event_57";"Event_58";"Event_59";"Event_60";"Event_61";"Event_62";"Event_63";"Event_64";"Event_65";"Event_66";"Event_67";"Event_68";"Event_69";"Event_70";"Event_71";"Event_72";"Event_73";"Event_74";"Event_75";"Event_76";"Event_77";"Event_78";"Event_79";"Event_80";"Event_81";"Event_82";"Event_83";"Event_84";"Event_85";"Event_86";"Event_87";"Event_88";"Event_89";"Event_90";"Event_91";"Event_92";"Event_93";"Event_94";"Event_95";"Event_96";"Event_97";"Event_98";"Event_99";"Event_1";};
};
float_Data @[1] {
name="Input";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 5;5;};
calc_expr {
expr=;
};
ar {
name=;
[5 5 100] 0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;};
};
float_Data @[2] {
name="Output";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;1;};
calc_expr {
expr=;
};
ar {
name=;
[2 1 100] 1;0;0;1;1;0;1;0;1;0;0;1;1;0;0;1;0;1;1;0;1;0;0;1;1;0;0;1;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;0;1;1;0;1;0;0;1;1;0;1;0;1;0;1;0;0;1;1;0;1;0;0;1;1;0;1;0;1;0;1;0;1;0;1;0;1;0;0;1;0;1;1;0;0;1;0;1;1;0;0;1;0;1;1;0;1;0;1;0;1;0;0;1;1;0;1;0;0;1;1;0;0;1;1;0;0;1;1;0;0;1;0;1;0;1;0;1;0;1;0;1;1;0;0;1;0;1;0;1;1;0;0;1;0;1;1;0;0;1;1;0;1;0;0;1;0;1;0;1;0;1;0;1;0;1;1;0;0;1;0;1;0;1;0;1;0;1;0;1;0;1;1;0;0;1;0;1;0;1;0;1;1;0;0;1;};
};
float_Data @[3] {
name="SNc";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;2;};
calc_expr {
expr=;
};
ar {
name=;
[2 2 100] 0;0;0;0;2000;2000;2000;2000;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2000;2000;2000;2000;2000;2000;2000;2000;0;0;0;0;0;0;0;0;0;0;0;0;2000;2000;2000;2000;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2000;2000;2000;2000;0;0;0;0;0;0;0;0;2000;2000;2000;2000;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2000;2000;2000;2000;0;0;0;0;0;0;0;0;2000;2000;2000;2000;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2000;2000;2000;2000;2000;2000;2000;2000;0;0;0;0;2000;2000;2000;2000;2000;2000;2000;2000;0;0;0;0;2000;2000;2000;2000;2000;2000;2000;2000;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2000;2000;2000;2000;0;0;0;0;0;0;0;0;2000;2000;2000;2000;2000;2000;2000;2000;0;0;0;0;2000;2000;2000;2000;0;0;0;0;0;0;0;0;2000;2000;2000;2000;0;0;0;0;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;0;0;0;0;2000;2000;2000;2000;2000;2000;2000;2000;0;0;0;0;0;0;0;0;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;2000;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2000;2000;2000;2000;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2000;2000;2000;2000;0;0;0;0;};
};
float_Data @[4] {
name="Motor_Cortex";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;1;};
calc_expr {
expr=;
};
ar {
name=;
[2 1 100] 0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;1;0;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;1;0;0;1;1;0;0;1;0;1;1;0;0;1;1;0;0;1;0;1;0;1;0;1;1;0;0;1;1;0;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;0;1;1;0;1;0;0;1;};
};
float_Data @[5] {
name="GP_Int";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;2;};
calc_expr {
expr=;
};
ar {
name=;
[2 2 100] 0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;1;0;1;0;1;0;1;0;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;1;0;1;0;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;1;0;1;0;0;1;0;1;1;0;1;0;0;1;0;1;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;};
};
};
data_flags=SAVE_ROWS|AUTO_CALC;
auto_load=NO_AUTO_LOAD;
auto_load_file=;
keygen 4 0=0;
};
DataTable @[3] {
name="TestWP_Optimal";
desc=;
data {
name="data";
el_typ=String_Data;
el_def=0;
String_Data @[0] {
name="Name";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[12] "0001_14_143";"0010_08_375";"0011_09_111";"0100_08_625";"0101_06_167";"0111_04_250";"1000_14_857";"1010_06_833";"1011_03_333";"1100_09_889";"1101_03_667";"1110_04_750";};
};
float_Data @[1] {
name="Input";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 5;5;};
calc_expr {
expr=;
};
ar {
name=;
[5 5 12] 0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;1;1;1;0;0;};
};
float_Data @[2] {
name="Output";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;1;};
calc_expr {
expr=;
};
ar {
name=;
[2 1 12] 1;0;1;0;1;0;0;1;1;0;1;0;0;1;0;1;1;0;0;1;0;1;0;1;};
};
float_Data @[3] {
name="SNc";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;2;};
calc_expr {
expr=;
};
ar {
name=;
[2 2 12] 0;0;0;0;2000;2000;2000;2000;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2000;2000;2000;2000;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;};
};
float_Data @[4] {
name="Motor_Cortex";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;1;};
calc_expr {
expr=;
};
ar {
name=;
[2 1 12] 0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;1;0;0;1;0;1;};
};
float_Data @[5] {
name="GP_Int";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;2;};
calc_expr {
expr=;
};
ar {
name=;
[2 2 12] 0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;1;0;1;0;0;1;0;1;0;1;0;1;};
};
};
data_flags=SAVE_ROWS|AUTO_CALC;
auto_load=NO_AUTO_LOAD;
auto_load_file=;
keygen 4 0=0;
};
};
DataTable_Group @.gp[1] {
name="OutputData";
el_typ=DataTable;
el_def=0;
DataTable @[0] {
name="TrialOutputData";
desc=;
data {
name="data";
el_typ=int_Data;
el_def=0;
int_Data @[0] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NARROW";
value 1 0=1;
};
};
name="batch";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
int_Data @[1] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NARROW";
value 1 0=1;
};
};
name="epoch";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
int_Data @[2] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NARROW";
value 1 0=1;
};
};
name="trial";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
String_Data @[3] {
name="trial_name";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
String_Data @[4] {
name="group_name";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
int_Data @[5] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NARROW";
value 1 0=1;
};
};
name="phase_no";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
float_Data @[6] {
name="minus_cycles";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
float_Data @[7] {
name="sse";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
float_Data @[8] {
name="ext_rew";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
float_Data @[9] {
name="Output_sse";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
};
data_flags=SAVE_ROWS|AUTO_CALC;
auto_load=NO_AUTO_LOAD;
auto_load_file=;
keygen 4 0=0;
};
DataTable @[1] {
name="EpochOutputData";
desc=;
data {
name="data";
el_typ=int_Data;
el_def=0;
int_Data @[0] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NARROW";
value 1 0=1;
};
};
name="batch";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
int_Data @[1] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NARROW";
value 1 0=1;
};
};
name="epoch";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
float_Data @[2] {
name="avg_sse";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
float_Data @[3] {
name="cnt_err";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
float_Data @[4] {
name="avg_ext_rew";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
float_Data @[5] {
name="Output_sse";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[0] };
};
};
data_flags=SAVE_ROWS|AUTO_CALC;
auto_load=NO_AUTO_LOAD;
auto_load_file=;
keygen 4 0=0;
};
DataTable @[2] {
name="CycleOutputData";
desc=;
data {
name="data";
el_typ=int_Data;
el_def=0;
int_Data @[0] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NARROW";
value 1 0=1;
};
};
name="batch";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
int_Data @[1] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NARROW";
value 1 0=1;
};
};
name="epoch";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
int_Data @[2] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NARROW";
value 1 0=1;
};
};
name="trial";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
String_Data @[3] {
name="trial_name";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
String_Data @[4] {
name="group_name";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
int_Data @[5] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NARROW";
value 1 0=1;
};
};
name="phase_no";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
int_Data @[6] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NARROW";
value 1 0=1;
};
};
name="cycle";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
float_Data @[7] {
name="sse";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
float_Data @[8] {
name="ext_rew";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
float_Data @[9] {
name="STN_acts_avg";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
float_Data @[10] {
name="Motor__acts_avg";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
float_Data @[11] {
name="Thalam_acts_avg";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
float_Data @[12] {
name="GP_Int_acts_avg";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
float_Data @[13] {
name="GP_Ext_acts_avg";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
};
float_Data @[14] {
name="Output_act";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;1;};
calc_expr {
expr=;
};
};
float_Data @[15] {
name="Output_units_0_act";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=1;
cell_geom{ 2;1;};
calc_expr {
expr=;
};
};
};
data_flags=AUTO_CALC;
auto_load=NO_AUTO_LOAD;
auto_load_file=;
keygen 4 0=0;
};
};
DataTable_Group @.gp[2] {
name="AnalysisData";
el_typ=DataTable;
el_def=0;
DataTable @[0] {
name="EpochOutputData_Group";
desc=;
data {
name="data";
el_typ=DataColTp;
el_def=0;
int_Data @[0] {
name="epoch_group";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[5] 0;1;2;3;4;};
};
float_Data @[1] {
name="batch_mean";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[5] 12;12;12;12;12;};
};
float_Data @[2] {
name="batch_sem";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[5] 1.4422204;1.4422204;1.4422204;1.4422204;1.4422204;};
};
float_Data @[3] {
name="avg_sse_mean";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[5] 0.85226071;0.68605095;0.42930219;0.36634642;0.32019389;};
};
float_Data @[4] {
name="avg_sse_sem";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[5] 0.050845664;0.049731813;0.038850818;0.03262366;0.03938181;};
};
float_Data @[5] {
name="cnt_err_mean";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[5] 5.48;5.04;3.6400001;3.3199999;3.2;};
};
float_Data @[6] {
name="cnt_err_sem";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[5] 0.31556934;0.42513055;0.38316578;0.36097646;0.4039802;};
};
float_Data @[7] {
name="avg_ext_rew_mean";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[5] 0;0;0;0;0;};
};
float_Data @[8] {
name="avg_ext_rew_sem";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[5] 0;0;0;0;0;};
};
float_Data @[9] {
name="Output_sse_mean";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[5] 0.613289;0.90176368;0.5320006;0.37883657;0.21367583;};
};
float_Data @[10] {
name="Output_sse_sem";
col_flags=SAVE_ROWS|SAVE_DATA;
is_matrix=0;
cell_geom{ 1;};
calc_expr {
expr=;
};
ar {
name=;
[5] 0.17472716;0.18528508;0.16630226;0.1144864;0.087352477;};
};
};
data_flags=SAVE_ROWS|AUTO_CALC;
auto_load=NO_AUTO_LOAD;
auto_load_file=;
keygen 4 0=0;
};
};
};
data_proc {
name=;
el_typ=taDataProc;
el_def=0;
taDataProc @[0] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NO_CLIP";
value 1 0=1;
};
};
name="data_base";
};
taDataAnal @[1] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NO_CLIP";
value 1 0=1;
};
};
name="data_anal";
};
taDataGen @[2] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NO_CLIP";
value 1 0=1;
};
};
name="data_gen";
};
taImageProc @[3] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="NO_CLIP";
value 1 0=1;
};
};
name="image_proc";
};
};
programs {
name=;
el_typ=Program;
el_def=0;
step_prog=NULL;
tags=;
desc=;
Program_Group @.gp[0] {
name="LeabraAll_Std";
el_typ=Program;
el_def=0;
step_prog=.projects[0].programs.gp[0][4]$5$;
tags="Leabra, Std, All";
desc="The full set of programs for training a standard Leabra network";
Program @[0] {
name="LeabraBatch";
tags="Leabra, Std";
desc="Iterate over training runs (a batch of training runs) -- just a simple loop that calls training program";
flags=SHOW_STEP;
objs {
name=;
el_typ=taOBase;
el_def=0;
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=LeabraNetwork;
object_val=.projects[0].networks[0]$6$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="network to operate on -- updates batch counter on network and passes it to train program";
};
ProgVar @[1] {
name="input_data";
var_type=T_Object;
object_type=DataTable;
object_val=.projects[0].data.gp[0][2]$7$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="datatable with training patterns -- not used by this program, but passed to train program";
};
ProgVar @[2] {
name="max_batch";
var_type=T_Int;
int_val=25;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="maximum number of batch runs to perform";
};
ProgVar @[3] {
name="TrainWP";
var_type=T_Object;
object_type=DataTable;
object_val=$7$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="datatable with training patterns";
};
ProgVar @[4] {
name="TestWP";
var_type=T_Object;
object_type=DataTable;
object_val=.projects[0].data.gp[0][3]$8$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="batch";
var_type=T_Int;
int_val=0;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="batch counter";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=NetCounterInit;
el_def=0;
NetCounterInit @[0] {
desc="initializes local batch counter and batch field on network";
flags=;
network_var=.projects[0].programs.gp[0][0].args[0]$9$;
local_ctr_var=.projects[0].programs.gp[0][0].vars[0]$10$;
counter=Network::batch;
};
};
prog_code {
name=;
el_typ=ProgEl;
el_def=0;
NetCounterInit @[0] {
desc="initializes local batch counter and batch field on network";
flags=;
network_var=$9$;
local_ctr_var=$10$;
counter=Network::batch;
};
WhileLoop @[1] {
desc="the main loop over training runs";
flags=;
loop_code {
name=;
el_typ=ProgEl;
el_def=0;
ProgramCall @[0] {
desc="run the training program -- sets the network and input_data args";
flags=;
target=.projects[0].programs.gp[0][1]$11$;
targ_ld_init="*LeabraTrain*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=LeabraNetwork;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=DataTable;
type="DataTable*";
name="input_data";
required=1;
def_val=;
expr {
expr="input_data";
var_expr="$#0#$";
vars {
};
var_names{ input_data;};
bad_vars{ };
};
};
ProgArg @[2] {
arg_type=DataTable;
type="DataTable*";
name="TrainWP";
required=1;
def_val=;
expr {
expr="TrainWP";
var_expr="$#0#$";
vars {
};
var_names{ TrainWP;};
bad_vars{ };
};
};
ProgArg @[3] {
arg_type=bool;
type="bool";
name="no_prompts";
required=1;
def_val=;
expr {
expr="true";
var_expr="true";
vars {
};
var_names{ };
bad_vars{ };
};
};
ProgArg @[4] {
arg_type=DataTable;
type="DataTable*";
name="TestWP";
required=1;
def_val=;
expr {
expr="TestWP";
var_expr="$#0#$";
vars {
};
var_names{ TestWP;};
bad_vars{ };
};
};
};
};
NetCounterIncr @[1] {
desc="increment the local batch counter and copy to network";
flags=;
network_var=$9$;
local_ctr_var=$10$;
counter=Network::batch;
};
};
test {
expr="batch < max_batch";
var_expr="$#0#$ < $#1#$";
vars {
};
var_names{ batch;max_batch;};
bad_vars{ };
};
};
};
};
Program @[1] {
name="LeabraTrain";
tags="Leabra, Std";
desc="A complete training run of a Leabra network: iterating over epochs until the network has learned the task";
flags=SHOW_STEP;
objs {
name=;
el_typ=RndSeed;
el_def=0;
RndSeed @[0] {
name="rnd_seed";
seed{ 897248114;-1259630319;-1954705695;-2086433643;-1705562578;-246166775;142172280;-1066196830;649876912;-363601797;-1551220787;-201998924;984813377;-1929982005;1866720504;1737535582;-2064818913;-596409631;-537210356;-394821123;-1176302275;-1088439095;390472553;1002483428;-644065336;-93234492;-249392311;1955837623;486322880;268723693;-1316990013;-1148081097;1053267338;-194887551;722894185;-1796145741;-419870710;-744395548;-2126350183;-1623934615;-1975558537;-1109580724;1457379925;952758326;-932820647;-793678521;622734178;-1116891631;992844023;348717466;1162608598;-2078137647;-402129645;-523610230;-892508948;-545793120;1897913877;280270467;-1694155315;294983543;-1251003482;-1650029695;-1335161250;-843867016;1576969605;-260969840;-224140684;1265137246;954732510;2064975050;-1145863940;-1435022393;-1859029257;1513712809;985631399;417291160;-2038587757;-1933156114;888379733;1446724555;-464909414;-1706911051;-1159096460;-1791674743;-147343083;960690226;682596297;1099430942;359127508;311504974;93962501;-1671326033;632618192;-885562045;1179982281;-1505675969;1344906533;-1418551925;1622092278;1701084792;242471559;-1984251903;-1568971862;-1063520265;1591722069;-1959097976;-1601150455;-874166212;-889564662;717605003;-1582378599;-1301052667;1211123575;485189748;-182999148;374766658;1150697026;-738165078;-390496439;960351772;-332421139;71115877;-1747551486;-288197538;2067393244;-402841323;168191432;698976579;-691346957;454158309;419567441;-1655444926;1843518827;-1387150657;-1775972895;1209349907;1737084105;-273997764;2063222132;-629133755;1321145195;-340980602;-64855207;836106865;-384606302;857100345;-616134379;-1192753754;-1534913223;1646103447;-337508797;-104008340;1371554336;1910014402;1731164243;157488784;-1230766726;1651230814;-1801393009;1853249886;-1909629469;-2064890998;-586605120;1029458265;-1567764431;-569878997;-1071722633;1842759325;1870815306;1275367738;-2047480342;699437794;-2078020834;2120915280;1609487567;715455530;-1961002406;-1366381474;1214551640;1682680277;1866914062;-1438763676;1522254727;410589237;1882867230;-2066414372;335577213;-1969515802;-2079897542;1101145964;-914546306;-578950040;-399253994;-1096753521;-660660212;-1198578643;1339175923;-781551297;-1839371394;1105332893;-1928816742;-400816250;1655921312;-452260989;2002840327;447789431;319958765;-658015714;-2019202134;-1586612048;-137582258;706769011;1101838665;827045450;599553857;-2145445088;244597783;1487421271;1630555190;-344172316;-1830139429;-1553867370;-156727033;-755056810;-2131860048;-494346652;1852068823;91308896;725609566;-1111505690;-982815291;1292267944;1836226774;-810066908;-496780978;202956912;603675823;637918661;-10943404;552199869;1297990249;-1519144401;-1727998742;1493519921;-1227758025;-860568373;2118867559;1126222143;-1549971275;-1469719981;-370967157;-1094842937;2081077388;-1045858167;-179155018;-384518151;905350287;-1851803717;571620219;760498291;-480881197;-973785647;838212682;340510526;510321855;-801267485;-852016520;1774211485;39420368;537777206;2107097314;1618664461;210916571;-423959548;631482818;-1040919263;-279241335;-892903760;497369428;1334556795;-290177741;-620998078;1723791759;253979182;2098469877;2033083432;2025527244;-556275368;-1153759308;1554310973;-2109179006;1594713042;-1652347925;-1896234258;1399293819;-1212915145;264979477;2035769098;-26264659;816116738;-1472777223;-1886895409;579752040;1987550252;850378084;-592526232;228677599;-1282752773;-3264037;1636907752;554996081;10747923;1856021975;150743074;1441285143;-284865308;64061770;547700487;2007963302;-518601320;717968026;-1887063740;-1161755710;654757340;624448862;1095845326;1219653475;1112960789;540367258;1430941426;-1573264900;842324047;-1866598839;672477326;-834606497;456739053;2014938441;1820294365;-1127769538;237909957;778195458;-320898672;-493131725;374332760;1492882317;244532839;1469335464;813662131;1904048850;1828753335;1969748325;1462812563;773013089;1263710334;6222118;1806899780;-1306665146;695150693;1034369820;-410885147;-2065109159;-21981403;1688153775;-1834763828;-2034905187;-868895926;-2040902706;760295113;705437415;-801989522;-327259983;340256932;1639347777;676478214;-868392127;-2126595595;1085040460;-101711712;1181203896;-1177629723;1052562025;-385800214;-2127578499;-247860261;-210619237;-1285411717;-1501642238;-1370695642;-901640534;-1139102088;-1435816006;2062624444;733280257;-325264040;815916517;1806401640;106587238;222094010;-1348528385;297616670;-861761020;117428779;2046490308;1520601476;1774880419;2117307057;709856479;658783300;-1019651996;1857641166;-1623434894;-1466106812;1764750271;337867896;1769011978;1878580541;-337505063;55931846;657238908;1968152816;-169076117;-975001150;-619957198;463669432;-1908341507;-643594058;-2026430605;1348524010;-730896925;454931916;416148985;-1578791134;-739712940;-1725329931;204101311;-1062609662;-1691773722;860783264;946450304;1161241387;207536058;3478215;923381087;-305329130;-1353819564;48467194;-497866365;-1191262819;1442954968;-408984143;934531440;1843513070;-1086308879;585900848;-1977125474;-643228730;1005419111;430194483;1169789286;892875109;-1732318651;-897476207;416658129;2090816327;-186559977;-187909452;1699611428;132945605;1386154990;-1021089733;1553010825;1685237703;1771892687;-1665309430;-1471203233;408978895;-1985168698;-1461014828;-475885929;-149644797;184461852;-1631733780;-113049057;1929365839;-1841043271;755994780;1384891379;-572376242;-1822728640;527993133;536302677;-728200547;-1916517795;401821920;777687226;634513383;938837982;-1741204308;-712292839;-888158003;-989731250;1070351745;-997999887;-1220926516;-477621207;-668502217;432615022;341097247;-1817216444;-1580909839;1073812924;-1037427637;-421491456;-2071807233;419582815;835099779;-300811050;1008848942;-622226245;1119083448;2015783992;374250496;417956216;70961961;-1285132279;1021911943;1585993281;1118486430;-946608452;-1704284523;1344252873;908115709;2135579935;636192621;-776174384;533471998;586778067;-154978136;1359740759;1629951629;-1733015859;2121954041;2104107711;-295897115;1345244080;-1738577645;-559564224;1033955967;-1763695458;250221436;-693902564;1091788545;927707887;-712040796;1439001997;1595609215;1364606826;661845780;-755815374;-2034931863;1346096804;-2074100882;-1065691144;654888208;1007146357;778226326;1410374083;1808044267;239070962;-300943249;1387420801;914251343;580430497;1404608152;117575915;1513662704;256310634;-569005681;-1678005121;-1445134348;2053633677;2025466731;-1577911340;-1278866808;-623511374;-1672074119;45321757;1247003680;1061170196;1198754894;-104913407;2054118989;-1781862918;1530368638;-226966082;-707276305;1591871350;331461390;608113940;235882513;-2046843672;-1075932011;-1894925926;1648301914;1170547429;1665497643;-1251944432;-1796010764;-73953480;788544378;1090859788;-1128050928;-145143834;594707390;-728801566;-252193318;1890915838;-834826210;602694736;1275821290;-2078563303;-1397408457;-343458496;1558647263;};
mti=156;
};
};
types {
name=;
el_typ=DynEnumType;
el_def=0;
DynEnumType @[0] {
name="RndInitType";
desc=;
enums {
name=;
el_typ=DynEnumItem;
el_def=0;
DynEnumItem @[0] {
name="OLD_SEED";
value=0;
desc="use stored random seed value (recreates same sequence every time)";
};
DynEnumItem @[1] {
name="NEW_SEED";
value=1;
desc="generate new random seed (new sequence of random numbers)";
};
};
bits=0;
};
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=LeabraNetwork;
object_val=$6$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="network to train";
};
ProgVar @[1] {
name="input_data";
var_type=T_Object;
object_type=DataTable;
object_val=$7$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="datatable with training patterns";
};
ProgVar @[2] {
name="TrainWP";
var_type=T_Object;
object_type=DataTable;
object_val=$7$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="datatable with training patterns";
};
ProgVar @[3] {
name="no_prompts";
var_type=T_Bool;
bool_val=1;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="If train is called by other programs (e.g., Batch), they should set this to true -- otherwise it is reset to false in Init";
};
ProgVar @[4] {
name="TestWP";
var_type=T_Object;
object_type=DataTable;
object_val=$8$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="max_epoch";
var_type=T_Int;
int_val=4;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="maximum number of epochs to run";
};
ProgVar @[1] {
name="train_mode";
var_type=T_HardEnum;
int_val=1;
hard_enum_type=Network::TrainMode;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="TRAIN = update weights (learn), TEST = just record network's responses but don't learn";
};
ProgVar @[2] {
name="test_mode";
var_type=T_HardEnum;
int_val=0;
hard_enum_type=Network::TrainMode;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="TRAIN = update weights (learn), TEST = just record network's responses but don't learn";
};
ProgVar @[3] {
name="rnd_init";
var_type=T_DynEnum;
dyn_enum_val {
enum_type=.projects[0].programs.gp[0][1].types[0]$12$;
value=0;
};
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="how to initialize the random numbers when the Init button is pressed";
};
ProgVar @[4] {
name="epoch";
var_type=T_Int;
int_val=0;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="current epoch -- local copy, which is used to update network's epoch counter";
};
ProgVar @[5] {
name="err_stopcrit";
var_type=T_Real;
real_val=0;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="stopping criterion -- when error measure (count of trials with a non-zero error by defult)
goes <= this value, stop training (set to -1 to disable stopping criterion, and always train to max_epoch epochs)";
};
ProgVar @[6] {
name="rnd_seed";
var_type=T_Object;
object_type=RndSeed;
object_val=.projects[0].programs.gp[0][1].objs[0]$13$;
objs_ptr=1;
flags=NULL_CHECK;
desc="random seed that is used at start of training -- if OldSeed is called";
};
ProgVar @[7] {
name="train_timer";
var_type=T_Object;
object_type=TimeUsed;
object_val=.projects[0].networks[0].train_time$14$;
objs_ptr=0;
flags=NULL_CHECK;
desc="records time used to train network (object lives on network -- this is a pointer to it)";
};
ProgVar @[8] {
name="TestFreq";
var_type=T_Object;
object_type=DataTable;
object_val=.projects[0].data.gp[0][1]$15$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[9] {
name="j";
var_type=T_Int;
int_val=18;
objs_ptr=0;
flags=NULL_CHECK;
desc=;
};
ProgVar @[10] {
name="i";
var_type=T_Int;
int_val=4;
objs_ptr=0;
flags=NULL_CHECK;
desc=;
};
ProgVar @[11] {
name="num_intact_snc_units";
var_type=T_Int;
int_val=4;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[12] {
name="snc_size";
var_type=T_Int;
int_val=4;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[13] {
name="SNc";
var_type=T_Object;
object_type=LeabraLayer;
object_val=.projects[0].networks[0].layers[2]$16$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[14] {
name="Striatum";
var_type=T_Object;
object_type=LeabraLayer;
object_val=.projects[0].networks[0].layers[1]$17$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=MethodCall;
el_def=0;
AssignExpr @[0] {
desc=;
flags=;
result_var=.projects[0].programs.gp[0][1].args[3]$18$;
expr {
expr="false";
var_expr="false";
vars {
};
var_names{ };
bad_vars{ };
};
};
MethodCall @[1] {
desc="check network to make sure it is ready to be run";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][1].args[0]$19$;
method=taBase::CheckConfig;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=bool;
type="bool";
name="quiet";
required=0;
def_val="false";
expr {
expr="false";
var_expr="false";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
AssignExpr @[2] {
desc="get our pointer to the network training time object";
flags=;
result_var=.projects[0].programs.gp[0][1].vars[7]$20$;
expr {
expr="network.train_time";
var_expr="$#0#$.train_time";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
NetCounterInit @[3] {
desc="initialize epoch counter ";
flags=;
network_var=$19$;
local_ctr_var=.projects[0].programs.gp[0][1].vars[4]$21$;
counter=Network::epoch;
};
IfElse @[4] {
desc="initialize random seed (either old or new)";
flags=;
cond {
expr="rnd_init == OLD_SEED";
var_expr="$#0#$ == OLD_SEED";
vars {
};
var_names{ rnd_init;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
MethodCall @[0] {
desc="restore previous random seed (all runs produce same results)";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][1].vars[6]$22$;
method=RndSeed::OldSeed;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
MethodCall @[0] {
desc="new random numbers each time";
flags=;
result_var=NULL;
obj=$22$;
method=RndSeed::NewSeed;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
};
IfGuiPrompt @[5] {
desc="don't initialize weights without checking";
flags=;
prompt="Do you want to Initialize Network Weights";
yes_label="Yes";
no_label="No";
yes_code {
name=;
el_typ=ProgEl;
el_def=0;
MethodCall @[0] {
desc="initialize network weights: could also load pre-set weights or something else here";
flags=;
result_var=NULL;
obj=$19$;
method=Network::Init_Weights;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
PrintExpr @[1] {
desc=;
flags=;
expr {
expr="network.name << \" Weights Initialized\"";
var_expr="$#0#$.name << \" Weights Initialized\"";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
};
prog_code {
name=;
el_typ=MethodCall;
el_def=0;
AssignExpr @[0] {
desc="get our pointer to the network training time object";
flags=;
result_var=$20$;
expr {
expr="network.train_time";
var_expr="$#0#$.train_time";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
MethodCall @[1] {
desc="start timer to keep track of how long it takes to run entire training run";
flags=;
result_var=NULL;
obj=$20$;
method=TimeUsed::StartTimer;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=bool;
type="bool";
name="reset_used";
required=0;
def_val="true";
expr {
expr="true";
var_expr="true";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
NetCounterInit @[2] {
desc="initialize epoch counter (both our local copy and network's epoch counter)";
flags=;
network_var=$19$;
local_ctr_var=$21$;
counter=Network::epoch;
};
MemberAssign @[3] {
desc="set network's training mode to our local value";
flags=;
obj=$19$;
path="train_mode";
expr {
expr="train_mode";
var_expr="$#0#$";
vars {
};
var_names{ train_mode;};
bad_vars{ };
};
update_after=0;
};
IfElse @[4] {
desc=;
flags=;
cond {
expr="no_prompts";
var_expr="$#0#$";
vars {
};
var_names{ no_prompts;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
MethodCall @[0] {
desc="initialize network weights: could also load pre-set weights or something else here";
flags=;
result_var=NULL;
obj=$19$;
method=Network::Init_Weights;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
PrintExpr @[1] {
desc=;
flags=;
expr {
expr="network.name << \" Weights Initialized\"";
var_expr="$#0#$.name << \" Weights Initialized\"";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
};
};
AssignExpr @[5] {
desc=;
flags=;
result_var=.projects[0].programs.gp[0][1].vars[12]$23$;
expr {
expr="SNc.units.size";
var_expr="$#0#$.units.size";
vars {
};
var_names{ SNc;};
bad_vars{ };
};
};
ForLoop @[6] {
desc="only connect intact snc units";
flags=;
loop_code {
name=;
el_typ=ProgEl;
el_def=0;
ForLoop @[0] {
desc="loop over striatal units (Go units for D1 projection and NoGo units for D2 projection)";
flags=;
loop_code {
name=;
el_typ=ProgEl;
el_def=0;
UserScript @[0] {
desc="zero out weights for non-intact snc units";
flags=;
script {
expr="SNc.units[i].send[0].Cn(j).wt=0; SNc.units[i].send[1].Cn(j).wt=0;  ";
var_expr="$#0#$.units[$#1#$].send[0].Cn($#2#$).wt=0; $#0#$.units[$#1#$].send[1].Cn($#2#$).wt=0;  ";
vars {
};
var_names{ SNc;i;j;};
bad_vars{ };
};
};
};
init {
expr="j = 0";
var_expr="$#0#$ = 0";
vars {
};
var_names{ j;};
bad_vars{ };
};
test {
expr="j <  (Striatum.units.size)/2";
var_expr="$#0#$ <  ($#1#$.units.size)/2";
vars {
};
var_names{ j;Striatum;};
bad_vars{ };
};
iter {
expr="j++";
var_expr="$#0#$++";
vars {
};
var_names{ j;};
bad_vars{ };
};
};
};
init {
expr="i = num_intact_snc_units";
var_expr="$#0#$ = $#1#$";
vars {
};
var_names{ i;num_intact_snc_units;};
bad_vars{ };
};
test {
expr="i <  snc_size";
var_expr="$#0#$ <  $#1#$";
vars {
};
var_names{ i;snc_size;};
bad_vars{ };
};
iter {
expr="i++";
var_expr="$#0#$++";
vars {
};
var_names{ i;};
bad_vars{ };
};
};
MemberAssign @[7] {
desc="set network's training mode to our local value";
flags=;
obj=$19$;
path="train_mode";
expr {
expr="test_mode";
var_expr="$#0#$";
vars {
};
var_names{ test_mode;};
bad_vars{ };
};
update_after=0;
};
OtherProgramVar @[8] {
desc=;
flags=;
other_prog=.projects[0].programs.gp[0][16]$24$;
set_other=1;
var_1=$3$;
var_2=NULL;
var_3=NULL;
var_4=NULL;
};
OtherProgramVar @[9] {
desc=;
flags=;
other_prog=.projects[0].programs.gp[0][3]$25$;
set_other=1;
var_1=$3$;
var_2=NULL;
var_3=NULL;
var_4=NULL;
};
ProgramCall @[10] {
desc="run the epoch program (one epoch), passes our network and input_data";
flags=;
target=$25$;
targ_ld_init="*LeabraTestEpoch*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=LeabraNetwork;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=DataTable;
type="DataTable*";
name="TestWP";
required=1;
def_val=;
expr {
expr="TestWP";
var_expr="$#0#$";
vars {
};
var_names{ TestWP;};
bad_vars{ };
};
};
};
};
WhileLoop @[11] {
desc="main loop over epochs of training";
flags=;
loop_code {
name=;
el_typ=ProgramCall;
el_def=0;
MemberAssign @[0] {
desc="set network's training mode to our local value";
flags=;
obj=$19$;
path="train_mode";
expr {
expr="train_mode";
var_expr="$#0#$";
vars {
};
var_names{ train_mode;};
bad_vars{ };
};
update_after=0;
};
ProgramCall @[1] {
desc="run the epoch program (one epoch), passes our network and input_data";
flags=;
target=.projects[0].programs.gp[0][2]$26$;
targ_ld_init="*LeabraEpoch*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=LeabraNetwork;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=DataTable;
type="DataTable*";
name="input_data";
required=1;
def_val=;
expr {
expr="input_data";
var_expr="$#0#$";
vars {
};
var_names{ input_data;};
bad_vars{ };
};
};
};
};
NetCounterIncr @[2] {
desc="increment the epoch counter (locally and on network)";
flags=;
network_var=$19$;
local_ctr_var=$21$;
counter=Network::epoch;
};
IfBreak @[3] {
desc="stop if errors go below stopping criterion (note: could use sse or avg_sse here instead)";
flags=;
cond {
expr="network.cnt_err <= err_stopcrit";
var_expr="$#0#$.cnt_err <= $#1#$";
vars {
};
var_names{ network;err_stopcrit;};
bad_vars{ };
};
};
MemberAssign @[4] {
desc="set network's training mode to our local value";
flags=;
obj=$19$;
path="train_mode";
expr {
expr="test_mode";
var_expr="$#0#$";
vars {
};
var_names{ test_mode;};
bad_vars{ };
};
update_after=0;
};
ProgramCall @[5] {
desc=;
flags=;
target=$25$;
targ_ld_init="*LeabraTestEpoch*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=LeabraNetwork;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=DataTable;
type="DataTable*";
name="TestWP";
required=1;
def_val=;
expr {
expr="TestWP";
var_expr="$#0#$";
vars {
};
var_names{ TestWP;};
bad_vars{ };
};
};
};
};
};
test {
expr="epoch < max_epoch";
var_expr="$#0#$ < $#1#$";
vars {
};
var_names{ epoch;max_epoch;};
bad_vars{ };
};
};
MethodCall @[12] {
desc="stop the timer -- time elapsed is now recorded in this object, and can be displayed or recorded to a data table";
flags=;
result_var=NULL;
obj=$20$;
method=TimeUsed::EndTimer;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
};
Program @[2] {
name="LeabraEpoch";
tags="Leabra, Std";
desc="iterates over all of the items in a data table and calls LeabraTrial process on them";
flags=SHOW_STEP;
objs {
name=;
el_typ=taOBase;
el_def=0;
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=LeabraNetwork;
object_val=$6$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="network to operate on";
};
ProgVar @[1] {
name="input_data";
var_type=T_Object;
object_type=DataTable;
object_val=$7$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="table of patterns to present to the network, one row at a time";
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="data_loop_order";
var_type=T_HardEnum;
int_val=1;
hard_enum_type=DataLoop::Order;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="controls the order in which events (rows of the input data datatable) are presented to the network
(SEQUENTIAL, PERMUTED, RANDOM)";
};
ProgVar @[1] {
name="trial";
var_type=T_Int;
int_val=0;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="current trial (event) within the epoch -- increments automatically";
};
ProgVar @[2] {
name="trial_mon_data";
var_type=T_Object;
object_type=DataTable;
object_val=.projects[0].data.gp[1][0]$27$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="trial-level output data -- we reset it every epoch by default, so it just contains last epoch of data";
};
ProgVar @[3] {
name="epoch_timer";
var_type=T_Object;
object_type=TimeUsed;
object_val=.projects[0].networks[0].epoch_time$28$;
objs_ptr=0;
flags=NULL_CHECK;
desc="timer to record time required to perform one epoch of processing (object is on network -- this is a pointer to it)";
};
ProgVar @[4] {
name="data_loop_index";
var_type=T_Int;
int_val=100;
objs_ptr=0;
flags=NULL_CHECK;
desc="index counter for the looping over items in the input_data datatable (not always the same as trial counter, depending on distributed memory computation)";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=NetCounterInit;
el_def=0;
NetCounterInit @[0] {
desc="initialize trial counter (local variable and in the network)";
flags=;
network_var=.projects[0].programs.gp[0][2].args[0]$29$;
local_ctr_var=.projects[0].programs.gp[0][2].vars[1]$30$;
counter=Network::trial;
};
AssignExpr @[1] {
desc="get pointer to epoch timer object on network";
flags=;
result_var=.projects[0].programs.gp[0][2].vars[3]$31$;
expr {
expr="network.epoch_time";
var_expr="$#0#$.epoch_time";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
prog_code {
name=;
el_typ=NetCounterInit;
el_def=0;
NetCounterInit @[0] {
desc="initialize trial counter (local variable and in the network)";
flags=;
network_var=$29$;
local_ctr_var=$30$;
counter=Network::trial;
};
AssignExpr @[1] {
desc="get pointer to epoch timer object on network";
flags=;
result_var=$31$;
expr {
expr="network.epoch_time";
var_expr="$#0#$.epoch_time";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
MethodCall @[2] {
desc="start the epoch timer to record computation time per epoch";
flags=;
result_var=NULL;
obj=$31$;
method=TimeUsed::StartTimer;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=bool;
type="bool";
name="reset_used";
required=0;
def_val="true";
expr {
expr="true";
var_expr="true";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
MethodCall @[3] {
desc="reset trial-level monitor data every epoch, so it reflects only the most recent epoch's worth of data (turn flags OFF to accumulate trial data across entire training run)";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][2].vars[2]$32$;
method=DataTable::ResetData;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
NetDataLoop @[4] {
desc="iterates over the events/rows of input_data, according to data_loop_order variable";
flags=;
loop_code {
name=;
el_typ=ProgramCall;
el_def=0;
ProgramCall @[0] {
desc="run the trial program, passing network and input_data";
flags=;
target=$5$;
targ_ld_init="*LeabraTrial*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=LeabraNetwork;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=DataTable;
type="DataTable*";
name="input_data";
required=1;
def_val=;
expr {
expr="input_data";
var_expr="$#0#$";
vars {
};
var_names{ input_data;};
bad_vars{ };
};
};
};
};
IfElse @[1] {
desc="test if it is time to update the weight values from delta weights (dWt) computed over trials";
flags=;
cond {
expr="network.Compute_Weights_Test(trial+1)";
var_expr="$#0#$.Compute_Weights_Test($#1#$+1)";
vars {
};
var_names{ network;trial;};
bad_vars{ };
};
true_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="update the weight values based on changes computed by trial program";
flags=;
result_var=NULL;
obj=$29$;
method=Network::Compute_Weights;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
};
};
};
data_var=.projects[0].programs.gp[0][2].args[1]$33$;
index_var=.projects[0].programs.gp[0][2].vars[4]$34$;
order_var=.projects[0].programs.gp[0][2].vars[0]$35$;
order=PERMUTED;
item_idx_list{ 43;21;90;13;50;17;77;74;45;1;42;94;24;10;15;64;84;91;23;87;83;99;72;86;28;40;52;9;48;97;57;54;3;37;6;51;27;75;12;67;56;5;7;65;31;44;98;11;33;61;63;39;0;76;4;22;59;26;92;49;41;95;19;60;93;38;66;35;58;89;73;46;53;30;79;82;69;18;36;81;62;80;25;71;85;29;34;68;96;14;8;20;88;78;16;55;32;47;2;70;};
dmem_nprocs=1;
dmem_this_proc=0;
};
IfElse @[5] {
desc="if full batch mode, update only at end of epoch";
flags=;
cond {
expr="network.wt_update == Network::BATCH";
var_expr="$#0#$.wt_update == Network::BATCH";
vars {
};
var_names{ network;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
MethodCall @[0] {
desc="final update of weights based on accumulated changes";
flags=;
result_var=NULL;
obj=$29$;
method=Network::Compute_Weights;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
};
};
MethodCall @[6] {
desc="network accumulates some core statistics over the epoch -- this finalizes that process and computes summary stats";
flags=;
result_var=NULL;
obj=$29$;
method=LeabraNetwork::Compute_EpochStats;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
ProgramCall @[7] {
desc="run program that records data from network and possibly other sources about the epoch";
flags=OFF;
target=.projects[0].programs.gp[0][14]$36$;
targ_ld_init="*LeabraEpochMonitor*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=Network;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
MethodCall @[8] {
desc="done with the computation in the epoch -- record time it took";
flags=;
result_var=NULL;
obj=$31$;
method=TimeUsed::EndTimer;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
};
Program @[3] {
name="LeabraTestEpoch";
tags=;
desc="iterates over all of the items in a data table and calls LeabraTrial process on them";
flags=;
objs {
name=;
el_typ=taOBase;
el_def=0;
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=LeabraNetwork;
object_val=$6$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="network to operate on";
};
ProgVar @[1] {
name="TestWP";
var_type=T_Object;
object_type=DataTable;
object_val=$8$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="data_loop_order";
var_type=T_HardEnum;
int_val=1;
hard_enum_type=DataLoop::Order;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="controls the order in which events (rows of the input data datatable) are presented to the network
(SEQUENTIAL, PERMUTED, RANDOM)";
};
ProgVar @[1] {
name="trial";
var_type=T_Int;
int_val=0;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="current trial (event) within the epoch -- increments automatically";
};
ProgVar @[2] {
name="trial_mon_data";
var_type=T_Object;
object_type=DataTable;
object_val=$27$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="trial-level output data -- we reset it every epoch by default, so it just contains last epoch of data";
};
ProgVar @[3] {
name="epoch_timer";
var_type=T_Object;
object_type=TimeUsed;
object_val=$28$;
objs_ptr=0;
flags=NULL_CHECK;
desc="timer to record time required to perform one epoch of processing (object is on network -- this is a pointer to it)";
};
ProgVar @[4] {
name="data_loop_index";
var_type=T_Int;
int_val=0;
objs_ptr=0;
flags=NULL_CHECK;
desc="index counter for the looping over items in the input_data datatable (not always the same as trial counter, depending on distributed memory computation)";
};
ProgVar @[5] {
name="num_intact_snc_units";
var_type=T_Int;
int_val=4;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[6] {
name="snc_size";
var_type=T_Int;
int_val=4;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[7] {
name="k";
var_type=T_Real;
real_val=1;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[8] {
name="SNc";
var_type=T_Object;
object_type=LeabraLayer;
object_val=$16$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=NetCounterInit;
el_def=0;
NetCounterInit @[0] {
desc="initialize trial counter (local variable and in the network)";
flags=;
network_var=.projects[0].programs.gp[0][3].args[0]$37$;
local_ctr_var=.projects[0].programs.gp[0][3].vars[1]$38$;
counter=Network::trial;
};
AssignExpr @[1] {
desc="get pointer to epoch timer object on network";
flags=;
result_var=.projects[0].programs.gp[0][3].vars[3]$39$;
expr {
expr="network.epoch_time";
var_expr="$#0#$.epoch_time";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
prog_code {
name=;
el_typ=NetCounterInit;
el_def=0;
NetCounterInit @[0] {
desc="initialize trial counter (local variable and in the network)";
flags=;
network_var=$37$;
local_ctr_var=$38$;
counter=Network::trial;
};
AssignExpr @[1] {
desc=;
flags=;
result_var=.projects[0].programs.gp[0][3].vars[6]$40$;
expr {
expr="SNc.units.size";
var_expr="$#0#$.units.size";
vars {
};
var_names{ SNc;};
bad_vars{ };
};
};
AssignExpr @[2] {
desc=;
flags=;
result_var=.projects[0].programs.gp[0][3].vars[7]$41$;
expr {
expr="(float)num_intact_snc_units/ snc_size";
var_expr="(float)$#0#$/ $#1#$";
vars {
};
var_names{ num_intact_snc_units;snc_size;};
bad_vars{ };
};
};
AssignExpr @[3] {
desc="get pointer to epoch timer object on network";
flags=;
result_var=$39$;
expr {
expr="network.epoch_time";
var_expr="$#0#$.epoch_time";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
MethodCall @[4] {
desc="start the epoch timer to record computation time per epoch";
flags=;
result_var=NULL;
obj=$39$;
method=TimeUsed::StartTimer;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=bool;
type="bool";
name="reset_used";
required=0;
def_val="true";
expr {
expr="true";
var_expr="true";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
MethodCall @[5] {
desc="reset trial-level monitor data every epoch, so it reflects only the most recent epoch's worth of data (turn flags OFF to accumulate trial data across entire training run)";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][3].vars[2]$42$;
method=DataTable::ResetData;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
NetDataLoop @[6] {
desc="iterates over the events/rows of input_data, according to data_loop_order variable";
flags=;
loop_code {
name=;
el_typ=ProgramCall;
el_def=0;
ProgramCall @[0] {
desc="run the trial program, passing network and input_data";
flags=;
target=.projects[0].programs.gp[0][5]$43$;
targ_ld_init="*LeabraTestTrial*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=LeabraNetwork;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=DataTable;
type="DataTable*";
name="TestWP";
required=1;
def_val=;
expr {
expr="TestWP";
var_expr="$#0#$";
vars {
};
var_names{ TestWP;};
bad_vars{ };
};
};
};
};
IfElse @[1] {
desc="test if it is time to update the weight values from delta weights (dWt) computed over trials";
flags=;
cond {
expr="network.Compute_Weights_Test(trial+1)";
var_expr="$#0#$.Compute_Weights_Test($#1#$+1)";
vars {
};
var_names{ network;trial;};
bad_vars{ };
};
true_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="update the weight values based on changes computed by trial program";
flags=;
result_var=NULL;
obj=$37$;
method=Network::Compute_Weights;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
};
};
};
data_var=.projects[0].programs.gp[0][3].args[1]$44$;
index_var=.projects[0].programs.gp[0][3].vars[4]$45$;
order_var=.projects[0].programs.gp[0][3].vars[0]$46$;
order=PERMUTED;
item_idx_list{ 9;4;2;7;5;6;11;8;1;0;3;10;};
dmem_nprocs=1;
dmem_this_proc=0;
};
IfElse @[7] {
desc="if full batch mode, update only at end of epoch";
flags=;
cond {
expr="network.wt_update == Network::BATCH";
var_expr="$#0#$.wt_update == Network::BATCH";
vars {
};
var_names{ network;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
MethodCall @[0] {
desc="final update of weights based on accumulated changes";
flags=;
result_var=NULL;
obj=$37$;
method=Network::Compute_Weights;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
};
};
MethodCall @[8] {
desc="network accumulates some core statistics over the epoch -- this finalizes that process and computes summary stats";
flags=;
result_var=NULL;
obj=$37$;
method=LeabraNetwork::Compute_EpochStats;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
ProgramCall @[9] {
desc="run program that records data from network and possibly other sources about the epoch";
flags=;
target=$36$;
targ_ld_init="*LeabraEpochMonitor*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=Network;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
MethodCall @[10] {
desc="done with the computation in the epoch -- record time it took";
flags=;
result_var=NULL;
obj=$39$;
method=TimeUsed::EndTimer;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
};
Program @[4] {
name="LeabraTrial";
tags="Leabra, Std";
desc="Leabra processing of a single input/toutput event or external information: typically runs a minus and a plus phase, then learns (unless testing)";
flags=SHOW_STEP;
objs {
name=;
el_typ=taOBase;
el_def=0;
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=LeabraNetwork;
object_val=$6$;
objs_ptr=0;
flags=NULL_CHECK;
desc="network to operate on -- typically set by higher-level calling programs";
};
ProgVar @[1] {
name="input_data";
var_type=T_Object;
object_type=DataTable;
object_val=$7$;
objs_ptr=0;
flags=NULL_CHECK;
desc="datatable containing training input/output patterns";
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="phase_no";
var_type=T_Int;
int_val=0;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="local phase counting variable (0 is typically minus phase, 1 is typically plus -- depends on network settings)";
};
ProgVar @[1] {
name="update_net_view";
var_type=T_Bool;
bool_val=1;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="determines whether to update any network view displays after trial is completed";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=NetCounterInit;
el_def=0;
NetCounterInit @[0] {
desc="initialize the local phase_no counter, and corresponding network one";
flags=;
network_var=.projects[0].programs.gp[0][4].args[0]$47$;
local_ctr_var=.projects[0].programs.gp[0][4].vars[0]$48$;
counter=LeabraNetwork::phase_no;
};
};
prog_code {
name=;
el_typ=MethodCall;
el_def=0;
NetCounterInit @[0] {
desc="initialize the local phase_no counter, and corresponding network one";
flags=;
network_var=$47$;
local_ctr_var=$48$;
counter=LeabraNetwork::phase_no;
};
MethodCall @[1] {
desc="initializes various counters at start of trial";
flags=;
result_var=NULL;
obj=$47$;
method=LeabraNetwork::Trial_Init;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
WhileLoop @[2] {
desc="loop over phases of settling in the network";
flags=;
loop_code {
name=;
el_typ=ProgramCall;
el_def=0;
ProgramCall @[0] {
desc="run the settle program (which iterates over cyles of network activation updating) for each phase";
flags=;
target=.projects[0].programs.gp[0][6]$49$;
targ_ld_init="*LeabraSettle*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=LeabraNetwork;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=DataTable;
type="DataTable*";
name="input_data";
required=1;
def_val=;
expr {
expr="input_data";
var_expr="$#0#$";
vars {
};
var_names{ input_data;};
bad_vars{ };
};
};
};
};
NetCounterIncr @[1] {
desc="increment the phase number (also on network)";
flags=;
network_var=$47$;
local_ctr_var=$48$;
counter=LeabraNetwork::phase_no;
};
MethodCall @[2] {
desc="increments other phase state information to prepare for the next phase of settling";
flags=;
result_var=NULL;
obj=$47$;
method=LeabraNetwork::Trial_UpdatePhase;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
test {
expr="phase_no < network.phase_max";
var_expr="$#0#$ < $#1#$.phase_max";
vars {
};
var_names{ phase_no;network;};
bad_vars{ };
};
};
MethodCall @[3] {
desc="after the trial is over, do final computations: Compute_dWt (learn weights), compute stats";
flags=;
result_var=NULL;
obj=$47$;
method=LeabraNetwork::Trial_Final;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
ProgramCall @[4] {
desc="records data about the trial-level processing to a datatable for graphing/processing";
flags=OFF;
target=.projects[0].programs.gp[0][12]$50$;
targ_ld_init="*LeabraTrialMonitor*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=Network;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
NetUpdateView @[5] {
desc="update the network view(s) (only if update_net_view is true)";
flags=;
network_var=$47$;
update_var=.projects[0].programs.gp[0][4].vars[1]$51$;
};
};
};
Program @[5] {
name="LeabraTestTrial";
tags=;
desc="Leabra processing of a single input/toutput event or external information: typically runs a minus and a plus phase, then learns (unless testing)";
flags=;
objs {
name=;
el_typ=taOBase;
el_def=0;
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=LeabraNetwork;
object_val=$6$;
objs_ptr=0;
flags=NULL_CHECK;
desc="network to operate on -- typically set by higher-level calling programs";
};
ProgVar @[1] {
name="TestWP";
var_type=T_Object;
object_type=DataTable;
object_val=$8$;
objs_ptr=0;
flags=NULL_CHECK;
desc="datatable containing training input/output patterns";
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="phase_no";
var_type=T_Int;
int_val=0;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="local phase counting variable (0 is typically minus phase, 1 is typically plus -- depends on network settings)";
};
ProgVar @[1] {
name="update_net_view";
var_type=T_Bool;
bool_val=1;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="determines whether to update any network view displays after trial is completed";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=NetCounterInit;
el_def=0;
NetCounterInit @[0] {
desc="initialize the local phase_no counter, and corresponding network one";
flags=;
network_var=.projects[0].programs.gp[0][5].args[0]$52$;
local_ctr_var=.projects[0].programs.gp[0][5].vars[0]$53$;
counter=LeabraNetwork::phase_no;
};
};
prog_code {
name=;
el_typ=MethodCall;
el_def=0;
NetCounterInit @[0] {
desc="initialize the local phase_no counter, and corresponding network one";
flags=;
network_var=$52$;
local_ctr_var=$53$;
counter=LeabraNetwork::phase_no;
};
MethodCall @[1] {
desc="initializes various counters at start of trial";
flags=;
result_var=NULL;
obj=$52$;
method=LeabraNetwork::Trial_Init;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
WhileLoop @[2] {
desc="loop over phases of settling in the network";
flags=;
loop_code {
name=;
el_typ=ProgramCall;
el_def=0;
ProgramCall @[0] {
desc="run the settle program (which iterates over cyles of network activation updating) for each phase";
flags=;
target=.projects[0].programs.gp[0][7]$54$;
targ_ld_init="*LeabraTestSettle*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=LeabraNetwork;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=DataTable;
type="DataTable*";
name="TestWP";
required=1;
def_val=;
expr {
expr="TestWP";
var_expr="$#0#$";
vars {
};
var_names{ TestWP;};
bad_vars{ };
};
};
};
};
NetCounterIncr @[1] {
desc="increment the phase number (also on network)";
flags=;
network_var=$52$;
local_ctr_var=$53$;
counter=LeabraNetwork::phase_no;
};
MethodCall @[2] {
desc="increments other phase state information to prepare for the next phase of settling";
flags=;
result_var=NULL;
obj=$52$;
method=LeabraNetwork::Trial_UpdatePhase;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
test {
expr="phase_no < network.phase_max";
var_expr="$#0#$ < $#1#$.phase_max";
vars {
};
var_names{ phase_no;network;};
bad_vars{ };
};
};
MethodCall @[3] {
desc="after the trial is over, do final computations: Compute_dWt (learn weights), compute stats";
flags=;
result_var=NULL;
obj=$52$;
method=LeabraNetwork::Trial_Final;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
ProgramCall @[4] {
desc="records data about the trial-level processing to a datatable for graphing/processing";
flags=;
target=$50$;
targ_ld_init="*LeabraTrialMonitor*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=Network;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
NetUpdateView @[5] {
desc="update the network view(s) (only if update_net_view is true)";
flags=;
network_var=$52$;
update_var=.projects[0].programs.gp[0][5].vars[1]$55$;
};
};
};
Program @[6] {
name="LeabraSettle";
tags="Leabra, Std";
desc="iterates over cycles of updating until network has settled into a stable state, or output activations have exceeded a threshold";
flags=;
objs {
name=;
el_typ=taOBase;
el_def=0;
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=LeabraNetwork;
object_val=$6$;
objs_ptr=0;
flags=NULL_CHECK;
desc=;
};
ProgVar @[1] {
name="input_data";
var_type=T_Object;
object_type=DataTable;
object_val=$7$;
objs_ptr=0;
flags=NULL_CHECK;
desc=;
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="cycle";
var_type=T_Int;
int_val=0;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="current cycle of settling (local loop counter)";
};
ProgVar @[1] {
name="min_cycles";
var_type=T_Int;
int_val=15;
objs_ptr=0;
flags=NULL_CHECK;
desc="IMPORTANT: this value is obtained from the network min_cycles and min_cycles_phase2 -- change the value on the network object, not here in this program!
sets the minimum number of cycles to settle for, regardless of network state changes, etc";
};
ProgVar @[2] {
name="update_net_view";
var_type=T_Bool;
bool_val=1;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="if true, will update network views at end of settling";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=NetCounterInit;
el_def=0;
NetCounterInit @[0] {
desc="initialize local cycle counter and corresponding counter on network";
flags=;
network_var=.projects[0].programs.gp[0][6].args[0]$56$;
local_ctr_var=.projects[0].programs.gp[0][6].vars[0]$57$;
counter=Network::cycle;
};
};
prog_code {
name=;
el_typ=NetCounterInit;
el_def=0;
NetCounterInit @[0] {
desc="initialize local cycle counter and corresponding counter on network";
flags=;
network_var=$56$;
local_ctr_var=$57$;
counter=Network::cycle;
};
MethodCall @[1] {
desc="resets input data, before getting new external inputs data from apply inputs call";
flags=;
result_var=NULL;
obj=$56$;
method=Network::Init_InputData;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
ProgramCall @[2] {
desc="apply external input activations from the input_data table to the network
this program can be extended to do arbitrary things to generate data and apply it to network layers";
flags=;
target=.projects[0].programs.gp[0][10]$58$;
targ_ld_init="*ApplyInputs*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=Network;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=DataTable;
type="DataTable*";
name="input_data";
required=1;
def_val=;
expr {
expr="input_data";
var_expr="$#0#$";
vars {
};
var_names{ input_data;};
bad_vars{ };
};
};
};
};
ProgramCall @[3] {
desc=;
flags=;
target=$24$;
targ_ld_init="*DA_Rew_Punish*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=LeabraNetwork;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=DataTable;
type="DataTable*";
name="input_data";
required=1;
def_val=;
expr {
expr="input_data";
var_expr="$#0#$";
vars {
};
var_names{ input_data;};
bad_vars{ };
};
};
};
};
IfElse @[4] {
desc=;
flags=;
cond {
expr="network.phase == LeabraNetwork::PLUS_PHASE";
var_expr="$#0#$.phase == LeabraNetwork::PLUS_PHASE";
vars {
};
var_names{ network;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
MemberAssign @[0] {
desc=;
flags=;
obj=$56$;
path="cycle_max";
expr {
expr="30";
var_expr="30";
vars {
};
var_names{ };
bad_vars{ };
};
update_after=0;
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
MemberAssign @[0] {
desc="number of cycles to run in minus phase";
flags=;
obj=$56$;
path="cycle_max";
expr {
expr="100";
var_expr="100";
vars {
};
var_names{ };
bad_vars{ };
};
update_after=0;
};
};
};
MethodCall @[5] {
desc="initializes various counters at start of settling";
flags=;
result_var=NULL;
obj=$56$;
method=LeabraNetwork::Settle_Init;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
IfElse @[6] {
desc="get appropriate min_cycles value depending on which phase we're in";
flags=;
cond {
expr="network.phase_no <= 1";
var_expr="$#0#$.phase_no <= 1";
vars {
};
var_names{ network;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
AssignExpr @[0] {
desc="get minimum number of cycles from parameter on network (which is where you should change this value!)";
flags=;
result_var=.projects[0].programs.gp[0][6].vars[1]$59$;
expr {
expr="network.min_cycles";
var_expr="$#0#$.min_cycles";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
AssignExpr @[0] {
desc="get minimum number of cycles from parameter on network (which is where you should change this value!)";
flags=;
result_var=$59$;
expr {
expr="network.min_cycles_phase2";
var_expr="$#0#$.min_cycles_phase2";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
WhileLoop @[7] {
desc="the main loop over cycles of updating";
flags=;
loop_code {
name=;
el_typ=ProgramCall;
el_def=0;
ProgramCall @[0] {
desc="run the cycle program, which computes one cycle of activations";
flags=;
target=.projects[0].programs.gp[0][8]$60$;
targ_ld_init="*LeabraCycle*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=LeabraNetwork;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
NetCounterIncr @[1] {
desc="increment cycle counter (also on network)";
flags=;
network_var=$56$;
local_ctr_var=$57$;
counter=Network::cycle;
};
IfContinue @[2] {
desc="avoid subsequent stopping criteria if below min_cycles";
flags=;
cond {
expr="cycle < min_cycles";
var_expr="$#0#$ < $#1#$";
vars {
};
var_names{ cycle;min_cycles;};
bad_vars{ };
};
};
IfBreak @[3] {
desc="stopping criterion for settling: based either on maximum change in activation (maxda) or on the maximum activation value in the network getting over threshold (which ever comes first).  Set either parmeter to values that are always false (e.g., trg_max_act_stopcrit = -1) to eliminate associated source of criterion for stopping settling.";
flags=;
cond {
expr="(network.maxda < network.maxda_stopcrit) ||
 (network.trg_max_act > network.trg_max_act_stopcrit)";
var_expr="($#0#$.maxda < $#0#$.maxda_stopcrit) ||
 ($#0#$.trg_max_act > $#0#$.trg_max_act_stopcrit)";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
test {
expr="cycle < network.cycle_max";
var_expr="$#0#$ < $#1#$.cycle_max";
vars {
};
var_names{ cycle;network;};
bad_vars{ };
};
};
MethodCall @[8] {
desc="perform final operations at end of settling (storing final activations, etc)";
flags=;
result_var=NULL;
obj=$56$;
method=LeabraNetwork::Settle_Final;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
IfElse @[9] {
desc="only run trial-level statistics in minus phase (otherwise network may have correct answer clamped on!).  IMPORTANT: this assumes that you've got target activation values for output layers already
presented in the minus phase -- if this is not the case (values are computed on the fly), you may want to run this instead at the start of the plus phase, after ApplyInputs";
flags=;
cond {
expr="network.phase == LeabraNetwork::MINUS_PHASE";
var_expr="$#0#$.phase == LeabraNetwork::MINUS_PHASE";
vars {
};
var_names{ network;};
bad_vars{ };
};
true_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="compute trial-level statistics";
flags=;
result_var=NULL;
obj=$56$;
method=LeabraNetwork::Compute_TrialStats;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
};
};
IfElse @[10] {
desc="this stat must be called in plus phase when reward information is avail";
flags=;
cond {
expr="network.phase_no == 1";
var_expr="$#0#$.phase_no == 1";
vars {
};
var_names{ network;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
MethodCall @[0] {
desc="get external reward information";
flags=;
result_var=NULL;
obj=$56$;
method=LeabraNetwork::Compute_ExtRew;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
};
};
NetUpdateView @[11] {
desc="update network views, if update_net_view == true";
flags=;
network_var=$56$;
update_var=.projects[0].programs.gp[0][6].vars[2]$61$;
};
};
};
Program @[7] {
name="LeabraTestSettle";
tags=;
desc="iterates over cycles of updating until network has settled into a stable state, or output activations have exceeded a threshold";
flags=;
objs {
name=;
el_typ=taOBase;
el_def=0;
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=LeabraNetwork;
object_val=$6$;
objs_ptr=0;
flags=NULL_CHECK;
desc=;
};
ProgVar @[1] {
name="TestWP";
var_type=T_Object;
object_type=DataTable;
object_val=$8$;
objs_ptr=0;
flags=NULL_CHECK;
desc=;
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="cycle";
var_type=T_Int;
int_val=77;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="current cycle of settling (local loop counter)";
};
ProgVar @[1] {
name="min_cycles";
var_type=T_Int;
int_val=15;
objs_ptr=0;
flags=NULL_CHECK;
desc="IMPORTANT: this value is obtained from the network min_cycles and min_cycles_phase2 -- change the value on the network object, not here in this program!
sets the minimum number of cycles to settle for, regardless of network state changes, etc";
};
ProgVar @[2] {
name="update_net_view";
var_type=T_Bool;
bool_val=1;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="if true, will update network views at end of settling";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=NetCounterInit;
el_def=0;
NetCounterInit @[0] {
desc="initialize local cycle counter and corresponding counter on network";
flags=;
network_var=.projects[0].programs.gp[0][7].args[0]$62$;
local_ctr_var=.projects[0].programs.gp[0][7].vars[0]$63$;
counter=Network::cycle;
};
};
prog_code {
name=;
el_typ=NetCounterInit;
el_def=0;
NetCounterInit @[0] {
desc="initialize local cycle counter and corresponding counter on network";
flags=;
network_var=$62$;
local_ctr_var=$63$;
counter=Network::cycle;
};
MethodCall @[1] {
desc="resets input data, before getting new external inputs data from apply inputs call";
flags=;
result_var=NULL;
obj=$62$;
method=Network::Init_InputData;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
ProgramCall @[2] {
desc="apply external input activations from the input_data table to the network
this program can be extended to do arbitrary things to generate data and apply it to network layers";
flags=;
target=.projects[0].programs.gp[0][11]$64$;
targ_ld_init="*ApplyInputsTest*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=Network;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=DataTable;
type="DataTable*";
name="TestWP";
required=1;
def_val=;
expr {
expr="TestWP";
var_expr="$#0#$";
vars {
};
var_names{ TestWP;};
bad_vars{ };
};
};
};
};
ProgramCall @[3] {
desc=;
flags=;
target=$24$;
targ_ld_init="*DA_Rew_Punish*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=LeabraNetwork;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=DataTable;
type="DataTable*";
name="input_data";
required=1;
def_val=;
expr {
expr="TestWP";
var_expr="$#0#$";
vars {
};
var_names{ TestWP;};
bad_vars{ };
};
};
};
};
IfElse @[4] {
desc=;
flags=;
cond {
expr="network.phase == LeabraNetwork::PLUS_PHASE";
var_expr="$#0#$.phase == LeabraNetwork::PLUS_PHASE";
vars {
};
var_names{ network;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
MemberAssign @[0] {
desc=;
flags=;
obj=$62$;
path="cycle_max";
expr {
expr="30";
var_expr="30";
vars {
};
var_names{ };
bad_vars{ };
};
update_after=0;
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
MemberAssign @[0] {
desc="number of cycles to run in minus phase";
flags=;
obj=$62$;
path="cycle_max";
expr {
expr="100";
var_expr="100";
vars {
};
var_names{ };
bad_vars{ };
};
update_after=0;
};
};
};
MethodCall @[5] {
desc="initializes various counters at start of settling";
flags=;
result_var=NULL;
obj=$62$;
method=LeabraNetwork::Settle_Init;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
IfElse @[6] {
desc="get appropriate min_cycles value depending on which phase we're in";
flags=;
cond {
expr="network.phase_no <= 1";
var_expr="$#0#$.phase_no <= 1";
vars {
};
var_names{ network;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
AssignExpr @[0] {
desc="get minimum number of cycles from parameter on network (which is where you should change this value!)";
flags=;
result_var=.projects[0].programs.gp[0][7].vars[1]$65$;
expr {
expr="network.min_cycles";
var_expr="$#0#$.min_cycles";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
AssignExpr @[0] {
desc="get minimum number of cycles from parameter on network (which is where you should change this value!)";
flags=;
result_var=$65$;
expr {
expr="network.min_cycles_phase2";
var_expr="$#0#$.min_cycles_phase2";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
WhileLoop @[7] {
desc="the main loop over cycles of updating";
flags=;
loop_code {
name=;
el_typ=ProgramCall;
el_def=0;
ProgramCall @[0] {
desc="run the cycle program, which computes one cycle of activations";
flags=;
target=.projects[0].programs.gp[0][9]$66$;
targ_ld_init="*LeabraTestCycle*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=LeabraNetwork;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
NetCounterIncr @[1] {
desc="increment cycle counter (also on network)";
flags=;
network_var=$62$;
local_ctr_var=$63$;
counter=Network::cycle;
};
IfContinue @[2] {
desc="avoid subsequent stopping criteria if below min_cycles";
flags=;
cond {
expr="cycle < min_cycles";
var_expr="$#0#$ < $#1#$";
vars {
};
var_names{ cycle;min_cycles;};
bad_vars{ };
};
};
IfBreak @[3] {
desc="stopping criterion for settling: based either on maximum change in activation (maxda) or on the maximum activation value in the network getting over threshold (which ever comes first).  Set either parmeter to values that are always false (e.g., trg_max_act_stopcrit = -1) to eliminate associated source of criterion for stopping settling.";
flags=;
cond {
expr="(network.maxda < network.maxda_stopcrit) ||
 (network.trg_max_act > network.trg_max_act_stopcrit)";
var_expr="($#0#$.maxda < $#0#$.maxda_stopcrit) ||
 ($#0#$.trg_max_act > $#0#$.trg_max_act_stopcrit)";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
test {
expr="cycle < network.cycle_max";
var_expr="$#0#$ < $#1#$.cycle_max";
vars {
};
var_names{ cycle;network;};
bad_vars{ };
};
};
MethodCall @[8] {
desc="perform final operations at end of settling (storing final activations, etc)";
flags=;
result_var=NULL;
obj=$62$;
method=LeabraNetwork::Settle_Final;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
IfElse @[9] {
desc="only run trial-level statistics in minus phase (otherwise network may have correct answer clamped on!).  IMPORTANT: this assumes that you've got target activation values for output layers already
presented in the minus phase -- if this is not the case (values are computed on the fly), you may want to run this instead at the start of the plus phase, after ApplyInputs";
flags=;
cond {
expr="network.phase == LeabraNetwork::MINUS_PHASE";
var_expr="$#0#$.phase == LeabraNetwork::MINUS_PHASE";
vars {
};
var_names{ network;};
bad_vars{ };
};
true_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="compute trial-level statistics";
flags=;
result_var=NULL;
obj=$62$;
method=LeabraNetwork::Compute_TrialStats;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
};
};
IfElse @[10] {
desc="this stat must be called in plus phase when reward information is avail";
flags=;
cond {
expr="network.phase_no == 1";
var_expr="$#0#$.phase_no == 1";
vars {
};
var_names{ network;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
MethodCall @[0] {
desc="get external reward information";
flags=;
result_var=NULL;
obj=$62$;
method=LeabraNetwork::Compute_ExtRew;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
};
};
NetUpdateView @[11] {
desc="update network views, if update_net_view == true";
flags=;
network_var=$62$;
update_var=.projects[0].programs.gp[0][7].vars[2]$67$;
};
};
};
Program @[8] {
name="LeabraCycle";
tags="Leabra, Std";
desc="runs one cycle of leabra processing (updating net inputs and activations)";
flags=;
objs {
name=;
el_typ=taOBase;
el_def=0;
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=LeabraNetwork;
object_val=$6$;
objs_ptr=0;
flags=NULL_CHECK;
desc=;
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="update_net_view";
var_type=T_Bool;
bool_val=1;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="determines whether network views will be updated on a cycle-by-cycle basis (slow, but often quite useful for seeing how processing is proceeding)";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=ProgEl;
el_def=0;
};
prog_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="this does all the standard leabra processing for one cycle of activation updating";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][8].args[0]$68$;
method=LeabraNetwork::Cycle_Run;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
NetUpdateView @[1] {
desc="update network views if update_net_view == true";
flags=;
network_var=$68$;
update_var=.projects[0].programs.gp[0][8].vars[0]$69$;
};
ProgramCall @[2] {
desc=;
flags=NON_STD;
target=.projects[0].programs.gp[0][13]$70$;
targ_ld_init="*Cycle_Monitor*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=Network;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
};
};
Program @[9] {
name="LeabraTestCycle";
tags=;
desc="runs one cycle of leabra processing (updating net inputs and activations)";
flags=;
objs {
name=;
el_typ=taOBase;
el_def=0;
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=LeabraNetwork;
object_val=$6$;
objs_ptr=0;
flags=NULL_CHECK;
desc=;
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="update_net_view";
var_type=T_Bool;
bool_val=1;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="determines whether network views will be updated on a cycle-by-cycle basis (slow, but often quite useful for seeing how processing is proceeding)";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=ProgEl;
el_def=0;
};
prog_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="this does all the standard leabra processing for one cycle of activation updating";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][9].args[0]$71$;
method=LeabraNetwork::Cycle_Run;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
NetUpdateView @[1] {
desc="update network views if update_net_view == true";
flags=;
network_var=$71$;
update_var=.projects[0].programs.gp[0][9].vars[0]$72$;
};
ProgramCall @[2] {
desc=;
flags=NON_STD;
target=$70$;
targ_ld_init="*Cycle_Monitor*";
prog_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=Network;
type="LeabraNetwork*";
name="network";
required=1;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
};
};
Program @[10] {
name="ApplyInputs";
tags="Network, InputData, Apply";
desc="apply the current input data to the network as external input and target values";
flags=;
objs {
name=;
el_typ=LayerWriter;
el_def=0;
LayerWriter @[0] {
name="LayerWriter_0";
data=$7$;
network=$6$;
layer_data {
name=;
el_typ=LayerWriterEl;
el_def=0;
LayerWriterEl @[0] {
chan_name="Input";
net_target=LAYER;
layer_name="Input";
offset {x=0: y=0: };
use_layer_type=1;
ext_flags=EXT;
noise {name="": type=NONE: mean=0: var=0.5: par=1: };
};
LayerWriterEl @[1] {
chan_name="Output";
net_target=LAYER;
layer_name="Output";
offset {x=0: y=0: };
use_layer_type=1;
ext_flags=TARG;
noise {name="": type=NONE: mean=0: var=0.5: par=1: };
};
LayerWriterEl @[2] {
chan_name="SNc";
net_target=LAYER;
layer_name="SNc";
offset {x=0: y=0: };
use_layer_type=1;
ext_flags=EXT;
noise {name="": type=NONE: mean=0: var=0.5: par=1: };
};
LayerWriterEl @[3] {
chan_name="Motor_Cortex";
net_target=LAYER;
layer_name="Motor_Cortex";
offset {x=0: y=0: };
use_layer_type=0;
ext_flags=COMP;
noise {name="": type=NONE: mean=0: var=0.5: par=1: };
};
LayerWriterEl @[4] {
chan_name="Name";
net_target=TRIAL_NAME;
layer_name="Name";
offset {x=0: y=0: };
use_layer_type=1;
ext_flags=;
noise {name="": type=NONE: mean=0: var=0.5: par=1: };
};
};
};
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=Network;
object_val=$6$;
objs_ptr=0;
flags=NULL_CHECK;
desc="network to apply inputs to -- typically set by calling program";
};
ProgVar @[1] {
name="input_data";
var_type=T_Object;
object_type=DataTable;
object_val=$7$;
objs_ptr=0;
flags=NULL_CHECK;
desc="input datatable containing input/output patterns";
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="LayerWriter_0";
var_type=T_Object;
object_type=LayerWriter;
object_val=.projects[0].programs.gp[0][10].objs[0]$73$;
objs_ptr=1;
flags=CTRL_PANEL|NULL_CHECK;
desc="this is a pointer to the LayerWriter object in objs -- edit that object to determine how information is presented to the network";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="sets the datatable and network for the layer writer, so it knows what to write to";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][10].vars[0]$74$;
method=LayerWriter::SetDataNetwork;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=DataBlock_ptr;
type="DataBlock*";
name="db";
required=0;
def_val=;
expr {
expr="input_data";
var_expr="$#0#$";
vars {
};
var_names{ input_data;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=Network_ptr;
type="Network*";
name="net";
required=0;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
MethodCall @[1] {
desc="check the configuration of the layer writer -- will emit warnings and errors for missing or misconfigured items";
flags=;
result_var=NULL;
obj=$74$;
method=taList_impl::CheckConfig;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=bool;
type="bool";
name="quiet";
required=0;
def_val="false";
expr {
expr="false";
var_expr="false";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
};
prog_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="apply inputs to the network!  layer writer has all the key specs";
flags=;
result_var=NULL;
obj=$74$;
method=LayerWriter::ApplyInputData;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
};
Program @[11] {
name="ApplyInputsTest";
tags=;
desc="apply the current input data to the network as external input and target values";
flags=;
objs {
name=;
el_typ=LayerWriter;
el_def=0;
LayerWriter @[0] {
name="LayerWriter_0";
data=$8$;
network=$6$;
layer_data {
name=;
el_typ=LayerWriterEl;
el_def=0;
LayerWriterEl @[0] {
chan_name="Input";
net_target=LAYER;
layer_name="Input";
offset {x=0: y=0: };
use_layer_type=1;
ext_flags=EXT;
noise {name="": type=NONE: mean=0: var=0.5: par=1: };
};
LayerWriterEl @[1] {
chan_name="Output";
net_target=LAYER;
layer_name="Output";
offset {x=0: y=0: };
use_layer_type=1;
ext_flags=TARG;
noise {name="": type=NONE: mean=0: var=0.5: par=1: };
};
LayerWriterEl @[2] {
chan_name="SNc";
net_target=LAYER;
layer_name="SNc";
offset {x=0: y=0: };
use_layer_type=1;
ext_flags=EXT;
noise {name="": type=NONE: mean=0: var=0.5: par=1: };
};
LayerWriterEl @[3] {
chan_name="Motor_Cortex";
net_target=LAYER;
layer_name="Motor_Cortex";
offset {x=0: y=0: };
use_layer_type=1;
ext_flags=TARG;
noise {name="": type=NONE: mean=0: var=0.5: par=1: };
};
LayerWriterEl @[4] {
chan_name="Name";
net_target=TRIAL_NAME;
layer_name="Name";
offset {x=0: y=0: };
use_layer_type=1;
ext_flags=;
noise {name="": type=NONE: mean=0: var=0.5: par=1: };
};
};
};
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=Network;
object_val=$6$;
objs_ptr=0;
flags=NULL_CHECK;
desc="network to apply inputs to -- typically set by calling program";
};
ProgVar @[1] {
name="TestWP";
var_type=T_Object;
object_type=DataTable;
object_val=$8$;
objs_ptr=0;
flags=NULL_CHECK;
desc="input datatable containing input/output patterns";
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="LayerWriter_0";
var_type=T_Object;
object_type=LayerWriter;
object_val=.projects[0].programs.gp[0][11].objs[0]$75$;
objs_ptr=1;
flags=CTRL_PANEL|NULL_CHECK;
desc="this is a pointer to the LayerWriter object in objs -- edit that object to determine how information is presented to the network";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="sets the datatable and network for the layer writer, so it knows what to write to";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][11].vars[0]$76$;
method=LayerWriter::SetDataNetwork;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=DataBlock_ptr;
type="DataBlock*";
name="db";
required=0;
def_val=;
expr {
expr="TestWP";
var_expr="$#0#$";
vars {
};
var_names{ TestWP;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=Network_ptr;
type="Network*";
name="net";
required=0;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
MethodCall @[1] {
desc="check the configuration of the layer writer -- will emit warnings and errors for missing or misconfigured items";
flags=;
result_var=NULL;
obj=$76$;
method=taList_impl::CheckConfig;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=bool;
type="bool";
name="quiet";
required=0;
def_val="false";
expr {
expr="false";
var_expr="false";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
};
prog_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="apply inputs to the network!  layer writer has all the key specs";
flags=;
result_var=NULL;
obj=$76$;
method=LayerWriter::ApplyInputData;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
};
Program @[12] {
name="LeabraTrialMonitor";
tags="Leabra, Std, Monitor";
desc="monitor trial-level data from the network (and potentially other sources) -- stores results in datatable (TrialOutputData typically) that can be used for graph/grid views and further analysis ";
flags=;
objs {
name=;
el_typ=NetMonitor;
el_def=0;
NetMonitor @[0] {
name="trial_netmon";
items {
name=;
el_typ=NetMonItem;
el_def=0;
NetMonItem @[0] {
name="batch";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="batch";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[1] {
name="epoch";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="epoch";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[2] {
name="trial";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="trial";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[3] {
name="trial_name";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="trial_name";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[4] {
name="group_name";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="group_name";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[5] {
name="phase_no";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="phase_no";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[6] {
name="minus_cycles";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="minus_cycles";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[7] {
name="sse";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="sse";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[8] {
name="ext_rew";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="ext_rew";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[9] {
name="Output_sse";
computed=0;
object_type=LeabraLayer;
object=.projects[0].networks[0].layers[7]$77$;
variable="sse";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
};
};
network=$6$;
data=$27$;
rmv_orphan_cols=1;
};
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=Network;
object_val=$6$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="network to record data from";
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="trial_mon_data";
var_type=T_Object;
object_type=DataTable;
object_val=$27$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="data table to record trial-level data to (this program writes new data to this table!)";
};
ProgVar @[1] {
name="trial_netmon";
var_type=T_Object;
object_type=NetMonitor;
object_val=.projects[0].programs.gp[0][12].objs[0]$78$;
objs_ptr=1;
flags=NULL_CHECK;
desc="pointer to the NetMonitor object in objs secton of this program that contains configuration for what to record and where to get it";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="set the network and datatable for the NetMonitor";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][12].vars[1]$79$;
method=NetMonitor::SetDataNetwork;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=DataTable_ptr;
type="DataTable*";
name="dt";
required=0;
def_val=;
expr {
expr="trial_mon_data";
var_expr="$#0#$";
vars {
};
var_names{ trial_mon_data;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=Network_ptr;
type="Network*";
name="net";
required=0;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
MethodCall @[1] {
desc="check the configuration of the network monitor -- will emit warnings and errors for misconfigurations";
flags=;
result_var=NULL;
obj=$79$;
method=taBase::CheckConfig;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=bool;
type="bool";
name="quiet";
required=0;
def_val="false";
expr {
expr="false";
var_expr="false";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
MethodCall @[2] {
desc="update the monitor items and data schema based on current settings of the NetMonitor object";
flags=;
result_var=NULL;
obj=$79$;
method=NetMonitor::UpdateMonitors;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=bool;
type="bool";
name="reset_first";
required=0;
def_val="false";
expr {
expr="true";
var_expr="true";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
};
prog_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="add a new blank row to the data";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][12].vars[0]$80$;
method=DataTable::AddBlankRow;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
MethodCall @[1] {
desc="get the new monitor data from the network and other sources -- this does the main work";
flags=;
result_var=NULL;
obj=$79$;
method=NetMonitor::GetMonVals;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
MethodCall @[2] {
desc="update views and other things after writing new data to monitor data table";
flags=;
result_var=NULL;
obj=$80$;
method=DataBlock::WriteClose;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
MethodCall @[3] {
desc="only functional for dmem projects: synchronizes trial data across processes so that all distributed memory processors have the same trial-level data, despite having run only a subset of them each";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][12].args[0]$81$;
method=Network::DMem_ShareTrialData;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=DataTable_ptr;
type="DataTable*";
name="dt";
required=1;
def_val=;
expr {
expr="trial_mon_data";
var_expr="$#0#$";
vars {
};
var_names{ trial_mon_data;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=int;
type="int";
name="n_rows";
required=0;
def_val="1";
expr {
expr="1";
var_expr="1";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
};
};
Program @[13] {
name="Cycle_Monitor";
tags=;
desc="monitor trial-level data from the network (and potentially other sources) -- stores results in datatable (TrialOutputData typically) that can be used for graph/grid views and further analysis ";
flags=;
objs {
name=;
el_typ=NetMonitor;
el_def=0;
NetMonitor @[0] {
name="cycle_netmon";
items {
name=;
el_typ=NetMonItem;
el_def=0;
NetMonItem @[0] {
name="batch";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="batch";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[1] {
name="epoch";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="epoch";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[2] {
name="trial";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="trial";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[3] {
name="trial_name";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="trial_name";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[4] {
name="group_name";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="group_name";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[5] {
name="phase_no";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="phase_no";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[6] {
name="cycle";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="cycle";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[7] {
name="sse";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="sse";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[8] {
name="ext_rew";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="ext_rew";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[9] {
name="STN_acts_avg";
computed=0;
object_type=LeabraLayer;
object=.projects[0].networks[0].layers[8]$82$;
variable="acts.avg";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[10] {
name="Motor__acts_avg";
computed=0;
object_type=LeabraLayer;
object=.projects[0].networks[0].layers[6]$83$;
variable="acts.avg";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[11] {
name="Thalam_acts_avg";
computed=0;
object_type=LeabraLayer;
object=.projects[0].networks[0].layers[5]$84$;
variable="acts.avg";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[12] {
name="GP_Int_acts_avg";
computed=0;
object_type=LeabraLayer;
object=.projects[0].networks[0].layers[3]$85$;
variable="acts.avg";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[13] {
name="GP_Ext_acts_avg";
computed=0;
object_type=LeabraLayer;
object=.projects[0].networks[0].layers[4]$86$;
variable="acts.avg";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[14] {
name="Output_act";
computed=0;
object_type=LeabraLayer;
object=$77$;
variable="act";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[15] {
name="Output_units_0_act";
computed=0;
object_type=LeabraLayer;
object=$77$;
variable="units[0].act";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
};
};
network=$6$;
data=.projects[0].data.gp[1][2]$87$;
rmv_orphan_cols=1;
};
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=Network;
object_val=$6$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="network to record data from";
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="cycle_mon_data";
var_type=T_Object;
object_type=DataTable;
object_val=$87$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="data table to record trial-level data to (this program writes new data to this table!)";
};
ProgVar @[1] {
name="cycle_netmon";
var_type=T_Object;
object_type=NetMonitor;
object_val=.projects[0].programs.gp[0][13].objs[0]$88$;
objs_ptr=1;
flags=NULL_CHECK;
desc="pointer to the NetMonitor object in objs secton of this program that contains configuration for what to record and where to get it";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="set the network and datatable for the NetMonitor";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][13].vars[1]$89$;
method=NetMonitor::SetDataNetwork;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=DataTable_ptr;
type="DataTable*";
name="dt";
required=0;
def_val=;
expr {
expr="cycle_mon_data";
var_expr="$#0#$";
vars {
};
var_names{ cycle_mon_data;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=Network_ptr;
type="Network*";
name="net";
required=0;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
MethodCall @[1] {
desc="check the configuration of the network monitor -- will emit warnings and errors for misconfigurations";
flags=;
result_var=NULL;
obj=$89$;
method=taBase::CheckConfig;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=bool;
type="bool";
name="quiet";
required=0;
def_val="false";
expr {
expr="false";
var_expr="false";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
MethodCall @[2] {
desc="update the monitor items and data schema based on current settings of the NetMonitor object";
flags=;
result_var=NULL;
obj=$89$;
method=NetMonitor::UpdateMonitors;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=bool;
type="bool";
name="reset_first";
required=0;
def_val="false";
expr {
expr="true";
var_expr="true";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
};
prog_code {
name=;
el_typ=MethodCall;
el_def=0;
IfReturn @[0] {
desc=;
flags=;
cond {
expr="network.phase_no>0";
var_expr="$#0#$.phase_no>0";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
MethodCall @[1] {
desc="add a new blank row to the data";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][13].vars[0]$90$;
method=DataTable::AddBlankRow;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
MethodCall @[2] {
desc="get the new monitor data from the network and other sources -- this does the main work";
flags=;
result_var=NULL;
obj=$89$;
method=NetMonitor::GetMonVals;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
MethodCall @[3] {
desc="update views and other things after writing new data to monitor data table";
flags=;
result_var=NULL;
obj=$90$;
method=DataBlock::WriteClose;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
MethodCall @[4] {
desc="only functional for dmem projects: synchronizes trial data across processes so that all distributed memory processors have the same trial-level data, despite having run only a subset of them each";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][13].args[0]$91$;
method=Network::DMem_ShareTrialData;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=DataTable_ptr;
type="DataTable*";
name="dt";
required=1;
def_val=;
expr {
expr="cycle_mon_data";
var_expr="$#0#$";
vars {
};
var_names{ cycle_mon_data;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=int;
type="int";
name="n_rows";
required=0;
def_val="1";
expr {
expr="1";
var_expr="1";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
};
};
Program @[14] {
name="LeabraEpochMonitor";
tags="Leabra, Std, Monitor";
desc="monitor epoch-level data from the network to a datatable (EpochOutputData typically) for use in graphing and viewing and further analysis";
flags=;
objs {
name=;
el_typ=NetMonitor;
el_def=0;
NetMonitor @[0] {
name="epoch_netmon";
items {
name=;
el_typ=NetMonItem;
el_def=0;
NetMonItem @[0] {
name="batch";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="batch";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[1] {
name="epoch";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="epoch";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[2] {
name="avg_sse";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="avg_sse";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[3] {
name="cnt_err";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="cnt_err";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[4] {
name="avg_ext_rew";
computed=0;
object_type=LeabraNetwork;
object=$6$;
variable="avg_ext_rew";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="": opr=NONE: arg=0: lw=-1: hi=1: };
};
NetMonItem @[5] {
name="Output_sse";
computed=0;
object_type=LeabraLayer;
object=$77$;
variable="sse";
var_label=;
name_style=AUTO_NAME;
max_name_len=6;
val_type=VT_FLOAT;
matrix=0;
matrix_geom{ };
agg {name="": op=NONE: rel={name="": rel=LESSTHANOREQUAL: val=0: use_var=0: var=NULL: }: };
pre_proc_1 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_2 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
pre_proc_3 {name="SimpleMathSpec": opr=NONE: arg=0: lw=-1: hi=1: };
};
};
network=$6$;
data=.projects[0].data.gp[1][1]$92$;
rmv_orphan_cols=1;
};
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=Network;
object_val=$6$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="network to get data from";
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="epoch_mon_data";
var_type=T_Object;
object_type=DataTable;
object_val=$92$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="data table to write the epoch data to";
};
ProgVar @[1] {
name="epoch_netmon";
var_type=T_Object;
object_type=NetMonitor;
object_val=.projects[0].programs.gp[0][14].objs[0]$93$;
objs_ptr=1;
flags=NULL_CHECK;
desc="network monitor object that contains full specs for what to record and where to get it";
};
ProgVar @[2] {
name="epoch_timer";
var_type=T_Object;
object_type=TimeUsed;
object_val=$28$;
objs_ptr=0;
flags=NULL_CHECK;
desc="pointer to the network's epoch-level timer, to record how long it took to process an epoch";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=AssignExpr;
el_def=0;
};
init_code {
name=;
el_typ=MethodCall;
el_def=0;
AssignExpr @[0] {
desc="get the epoch timer from current network";
flags=;
result_var=.projects[0].programs.gp[0][14].vars[2]$94$;
expr {
expr="network.epoch_time";
var_expr="$#0#$.epoch_time";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
MethodCall @[1] {
desc="set data and network on NetMonitor object";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][14].vars[1]$95$;
method=NetMonitor::SetDataNetwork;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=DataTable_ptr;
type="DataTable*";
name="dt";
required=0;
def_val=;
expr {
expr="epoch_mon_data";
var_expr="$#0#$";
vars {
};
var_names{ epoch_mon_data;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=Network_ptr;
type="Network*";
name="net";
required=0;
def_val=;
expr {
expr="network";
var_expr="$#0#$";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
};
};
MethodCall @[2] {
desc="check configuration and emit errors/warnings for problems";
flags=;
result_var=NULL;
obj=$95$;
method=taBase::CheckConfig;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=bool;
type="bool";
name="quiet";
required=0;
def_val="false";
expr {
expr="false";
var_expr="false";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
MethodCall @[3] {
desc="update the monitor items and data schema based on current settings of NetMonitor";
flags=;
result_var=NULL;
obj=$95$;
method=NetMonitor::UpdateMonitors;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=bool;
type="bool";
name="reset_first";
required=0;
def_val="false";
expr {
expr="true";
var_expr="true";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
};
prog_code {
name=;
el_typ=MethodCall;
el_def=0;
MethodCall @[0] {
desc="add a new blank row to the data";
flags=;
result_var=NULL;
obj=.projects[0].programs.gp[0][14].vars[0]$96$;
method=DataTable::AddBlankRow;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
MethodCall @[1] {
desc="get the new monitor data and stor it into the data table -- this does the main job here";
flags=;
result_var=NULL;
obj=$95$;
method=NetMonitor::GetMonVals;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
AssignExpr @[2] {
desc="get the epoch timer from current network";
flags=;
result_var=$94$;
expr {
expr="network.epoch_time";
var_expr="$#0#$.epoch_time";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
MethodCall @[3] {
desc="update after writing new data to monitor data table";
flags=;
result_var=NULL;
obj=$96$;
method=DataBlock::WriteClose;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
};
};
};
};
Program @[15] {
name="SaveWeights";
tags="Network, Weights";
desc="save network's current weight values to file using WriteWeights function, with file name based on project name + batch + epoch values";
flags=;
objs {
name=;
el_typ=taOBase;
el_def=0;
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=Network;
object_val=NULL;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="tag";
var_type=T_String;
string_val=;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="user-provided tag (startup script will set this!)";
};
ProgVar @[1] {
name="wts_subdir";
var_type=T_String;
string_val=;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="user-provided subdirectory to save weights in";
};
ProgVar @[2] {
name="fname";
var_type=T_String;
string_val=;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="final generated file name -- do not edit!";
};
ProgVar @[3] {
name="epoch_str";
var_type=T_String;
string_val="0036";
objs_ptr=0;
flags=NULL_CHECK;
desc="string rep of epoch with leading zeros";
};
ProgVar @[4] {
name="batch_str";
var_type=T_String;
string_val="03";
objs_ptr=0;
flags=NULL_CHECK;
desc="string rep of batch with leading zeros";
};
ProgVar @[5] {
name="final_tag";
var_type=T_String;
string_val=".03_0036";
objs_ptr=0;
flags=NULL_CHECK;
desc="batch + epoch";
};
};
functions {
name=;
el_typ=ProgEl;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=ProgEl;
el_def=0;
};
prog_code {
name=;
el_typ=MethodCall;
el_def=0;
IfReturn @[0] {
desc="do not save if not the first dmem process (only relevant for dmem = distributed memory processing)";
flags=;
cond {
expr="taMisc::dmem_proc > 0";
var_expr="taMisc::dmem_proc > 0";
vars {
};
var_names{ };
bad_vars{ };
};
};
MiscCall @[1] {
desc="get current batch counter for file name, with leading zeros to length 3";
flags=;
result_var=.projects[0].programs.gp[0][15].vars[4]$97$;
object_type=taMisc;
method=taMisc::LeadingZeros;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=int;
type="int";
name="num";
required=0;
def_val=;
expr {
expr="network.batch";
var_expr="$#0#$.batch";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=int;
type="int";
name="len";
required=0;
def_val=;
expr {
expr="2";
var_expr="2";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
MiscCall @[2] {
desc="get current epoch counter with leading zeros to length 4";
flags=;
result_var=.projects[0].programs.gp[0][15].vars[3]$98$;
object_type=taMisc;
method=taMisc::LeadingZeros;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=int;
type="int";
name="num";
required=0;
def_val=;
expr {
expr="network.epoch";
var_expr="$#0#$.epoch";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=int;
type="int";
name="len";
required=0;
def_val=;
expr {
expr="4";
var_expr="4";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
AssignExpr @[3] {
desc="string 'tag' to identify the batch, epoch, and other user id info for the weights";
flags=;
result_var=.projects[0].programs.gp[0][15].vars[5]$99$;
expr {
expr="tag + \".\" + batch_str + \"_\" + epoch_str";
var_expr="$#0#$ + \".\" + $#1#$ + \"_\" + $#2#$";
vars {
};
var_names{ tag;batch_str;epoch_str;};
bad_vars{ };
};
};
MethodCall @[4] {
desc="get a file name based on the project's current file name, for saving the weights";
flags=;
result_var=.projects[0].programs.gp[0][15].vars[2]$100$;
obj=.projects[0].programs.gp[0][15].args[0]$101$;
method=taBase::GetFileNameFmProject;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=const_taString_ref;
type="const taString&";
name="ext";
required=1;
def_val=;
expr {
expr="\".wts.gz\"";
var_expr="\".wts.gz\"";
vars {
};
var_names{ };
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=const_taString_ref;
type="const taString&";
name="tag";
required=0;
def_val="\"\"";
expr {
expr="final_tag";
var_expr="$#0#$";
vars {
};
var_names{ final_tag;};
bad_vars{ };
};
};
ProgArg @[2] {
arg_type=const_taString_ref;
type="const taString&";
name="subdir";
required=0;
def_val="\"\"";
expr {
expr="wts_subdir";
var_expr="$#0#$";
vars {
};
var_names{ wts_subdir;};
bad_vars{ };
};
};
ProgArg @[3] {
arg_type=bool;
type="bool";
name="dmem_proc_no";
required=0;
def_val="false";
expr {
expr="false";
var_expr="false";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
MethodCall @[5] {
desc="save the weights to that file name";
flags=;
result_var=NULL;
obj=$101$;
method=Network::SaveWeights;
meth_args {
name=;
el_typ=ProgArg;
el_def=0;
ProgArg @[0] {
arg_type=const_taString_ref;
type="const taString&";
name="fname";
required=0;
def_val="\"\"";
expr {
expr="fname";
var_expr="$#0#$";
vars {
};
var_names{ fname;};
bad_vars{ };
};
};
ProgArg @[1] {
arg_type=Network::WtSaveFormat;
type="Network::WtSaveFormat";
name="fmt";
required=0;
def_val="Network::NET_FMT";
expr {
expr="Network::NET_FMT";
var_expr="Network::NET_FMT";
vars {
};
var_names{ };
bad_vars{ };
};
};
};
};
};
};
Program @[16] {
name="DA_Rew_Punish";
tags=;
desc=;
flags=;
objs {
name=;
el_typ=taNBase;
el_def=0;
};
types {
name=;
el_typ=ProgType;
el_def=0;
};
args {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="network";
var_type=T_Object;
object_type=LeabraNetwork;
object_val=$6$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="network to train";
};
ProgVar @[1] {
name="input_data";
var_type=T_Object;
object_type=DataTable;
object_val=$8$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc="datatable with training patterns";
};
};
vars {
name=;
el_typ=ProgVar;
el_def=0;
ProgVar @[0] {
name="num_intact_snc_units";
var_type=T_Int;
int_val=4;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[1] {
name="snc_size";
var_type=T_Int;
int_val=4;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[2] {
name="k";
var_type=T_Real;
real_val=1;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[3] {
name="sse";
var_type=T_Real;
real_val=0;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[4] {
name="act0";
var_type=T_Real;
real_val=2.585929053111613e-07;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[5] {
name="act1";
var_type=T_Real;
real_val=0.9375092387199402;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[6] {
name="SNc";
var_type=T_Object;
object_type=LeabraLayer;
object_val=$16$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[7] {
name="Output";
var_type=T_Object;
object_type=LeabraLayer;
object_val=$77$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[8] {
name="Motor_Cortex";
var_type=T_Object;
object_type=LeabraLayer;
object_val=$83$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[9] {
name="matrisom_unitspec";
var_type=T_Object;
object_type=LeabraUnitSpec;
object_val=.projects[0].networks[0].specs.gp[2][0].children[3].children[0]$102$;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[10] {
name="i";
var_type=T_Int;
int_val=4;
objs_ptr=0;
flags=NULL_CHECK;
desc=;
};
ProgVar @[11] {
name="tonic_DA";
var_type=T_Real;
real_val=0.03;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[12] {
name="op_sse";
var_type=T_Int;
int_val=0;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[13] {
name="DA_dip_val";
var_type=T_Real;
real_val=0;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
ProgVar @[14] {
name="DA_burst_val";
var_type=T_Real;
real_val=1;
objs_ptr=0;
flags=CTRL_PANEL|NULL_CHECK;
desc=;
};
};
functions {
name=;
el_typ=Function;
el_def=0;
};
load_code {
name=;
el_typ=ProgEl;
el_def=0;
};
init_code {
name=;
el_typ=ProgEl;
el_def=0;
};
prog_code {
name=;
el_typ=ProgEl;
el_def=0;
AssignExpr @[0] {
desc=;
flags=;
result_var=.projects[0].programs.gp[0][16].vars[1]$103$;
expr {
expr="SNc.units.size";
var_expr="$#0#$.units.size";
vars {
};
var_names{ SNc;};
bad_vars{ };
};
};
AssignExpr @[1] {
desc=;
flags=;
result_var=.projects[0].programs.gp[0][16].vars[2]$104$;
expr {
expr="(float)num_intact_snc_units/ snc_size";
var_expr="(float)$#0#$/ $#1#$";
vars {
};
var_names{ num_intact_snc_units;snc_size;};
bad_vars{ };
};
};
AssignExpr @[2] {
desc=;
flags=;
result_var=.projects[0].programs.gp[0][16].vars[3]$105$;
expr {
expr="network.sse";
var_expr="$#0#$.sse";
vars {
};
var_names{ network;};
bad_vars{ };
};
};
IfElse @[3] {
desc="apply phasic DA in plus phase";
flags=;
cond {
expr="network.phase==LeabraNetwork::PLUS_PHASE";
var_expr="$#0#$.phase==LeabraNetwork::PLUS_PHASE";
vars {
};
var_names{ network;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
IfElse @[0] {
desc="if error is  below threshold, given DA burst";
flags=;
cond {
expr="k>0&&Output.sse<0.5";
var_expr="$#0#$>0&&$#1#$.sse<0.5";
vars {
};
var_names{ k;Output;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
ForLoop @[0] {
desc="loop over snc units";
flags=;
loop_code {
name=;
el_typ=ProgEl;
el_def=0;
MemberAssign @[0] {
desc="set external input on SNC to high value for DA burst";
flags=;
obj=.projects[0].programs.gp[0][16].vars[6]$106$;
path="units[i].ext";
expr {
expr="DA_burst_val";
var_expr="$#0#$";
vars {
};
var_names{ DA_burst_val;};
bad_vars{ };
};
update_after=0;
};
};
init {
expr="i = 0";
var_expr="$#0#$ = 0";
vars {
};
var_names{ i;};
bad_vars{ };
};
test {
expr="i < snc_size";
var_expr="$#0#$ < $#1#$";
vars {
};
var_names{ i;snc_size;};
bad_vars{ };
};
iter {
expr="i++";
var_expr="$#0#$++";
vars {
};
var_names{ i;};
bad_vars{ };
};
};
MemberAssign @[1] {
desc="set striatal gain in proportion to DA and # intact Snc units";
flags=;
obj=.projects[0].programs.gp[0][16].vars[9]$107$;
path="act.gain";
expr {
expr="k*10000";
var_expr="$#0#$*10000";
vars {
};
var_names{ k;};
bad_vars{ };
};
update_after=0;
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
ForLoop @[0] {
desc=;
flags=;
loop_code {
name=;
el_typ=ProgEl;
el_def=0;
MemberAssign @[0] {
desc="set DA units to 0 for DA dip";
flags=;
obj=$106$;
path="units[i].ext";
expr {
expr="DA_dip_val";
var_expr="$#0#$";
vars {
};
var_names{ DA_dip_val;};
bad_vars{ };
};
update_after=0;
};
};
init {
expr="i = 0";
var_expr="$#0#$ = 0";
vars {
};
var_names{ i;};
bad_vars{ };
};
test {
expr="i < snc_size";
var_expr="$#0#$ < $#1#$";
vars {
};
var_names{ i;snc_size;};
bad_vars{ };
};
iter {
expr="i++";
var_expr="$#0#$++";
vars {
};
var_names{ i;};
bad_vars{ };
};
};
MemberAssign @[1] {
desc="set striatal gain to be lower for DA dip (less D1 contrast enhancement)";
flags=;
obj=$107$;
path="act.gain";
expr {
expr="600-k*300";
var_expr="600-$#0#$*300";
vars {
};
var_names{ k;};
bad_vars{ };
};
update_after=0;
};
};
};
AssignExpr @[1] {
desc="store minus phase activation of motor ctx unit 0";
flags=;
result_var=.projects[0].programs.gp[0][16].vars[4]$108$;
expr {
expr="Motor_Cortex.units[0].act_m";
var_expr="$#0#$.units[0].act_m";
vars {
};
var_names{ Motor_Cortex;};
bad_vars{ };
};
};
AssignExpr @[2] {
desc="store minus phase act of motor unit 1";
flags=;
result_var=.projects[0].programs.gp[0][16].vars[5]$109$;
expr {
expr="Motor_Cortex.units[1].act_m";
var_expr="$#0#$.units[1].act_m";
vars {
};
var_names{ Motor_Cortex;};
bad_vars{ };
};
};
IfElse @[3] {
desc="if model selected R1";
flags=;
cond {
expr="act0>act1";
var_expr="$#0#$>$#1#$";
vars {
};
var_names{ act0;act1;};
bad_vars{ };
};
true_code {
name=;
el_typ=ProgEl;
el_def=0;
MemberAssign @[0] {
desc="set plus phase acts to reflect minus phase response";
flags=;
obj=.projects[0].programs.gp[0][16].vars[8]$110$;
path="units[0].ext";
expr {
expr="1.0";
var_expr="1.0";
vars {
};
var_names{ };
bad_vars{ };
};
update_after=0;
};
MemberAssign @[1] {
desc="set plus phase acts to reflect minus phase response";
flags=;
obj=$110$;
path="units[1].ext";
expr {
expr="0.0";
var_expr="0.0";
vars {
};
var_names{ };
bad_vars{ };
};
update_after=0;
};
MemberAssign @[2] {
desc="set plus phase acts to reflect minus phase response";
flags=;
obj=$110$;
path="units[2].ext";
expr {
expr="1.0";
var_expr="1.0";
vars {
};
var_names{ };
bad_vars{ };
};
update_after=0;
};
MemberAssign @[3] {
desc="set plus phase acts to reflect minus phase response";
flags=;
obj=$110$;
path="units[3].ext";
expr {
expr="0";
var_expr="0";
vars {
};
var_names{ };
bad_vars{ };
};
update_after=0;
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
MemberAssign @[0] {
desc="set plus phase acts to reflect minus phase response";
flags=;
obj=$110$;
path="units[0].ext";
expr {
expr="0";
var_expr="0";
vars {
};
var_names{ };
bad_vars{ };
};
update_after=0;
};
MemberAssign @[1] {
desc="set plus phase acts to reflect minus phase response";
flags=;
obj=$110$;
path="units[1].ext";
expr {
expr="1.0";
var_expr="1.0";
vars {
};
var_names{ };
bad_vars{ };
};
update_after=0;
};
MemberAssign @[2] {
desc="set plus phase acts to reflect minus phase response";
flags=;
obj=$110$;
path="units[2].ext";
expr {
expr="0";
var_expr="0";
vars {
};
var_names{ };
bad_vars{ };
};
update_after=0;
};
MemberAssign @[3] {
desc="set plus phase acts to reflect minus phase response";
flags=;
obj=$110$;
path="units[3].ext";
expr {
expr="1.0";
var_expr="1.0";
vars {
};
var_names{ };
bad_vars{ };
};
update_after=0;
};
};
};
};
false_code {
name=;
el_typ=ProgEl;
el_def=0;
ForLoop @[0] {
desc="loop over snc units";
flags=;
loop_code {
name=;
el_typ=ProgEl;
el_def=0;
MemberAssign @[0] {
desc="set tonic DA val";
flags=;
obj=$106$;
path="units[i].ext";
expr {
expr="tonic_DA";
var_expr="$#0#$";
vars {
};
var_names{ tonic_DA;};
bad_vars{ };
};
update_after=0;
};
MemberAssign @[1] {
desc="set striatal gain in proportion to DA and # intact Snc units";
flags=;
obj=$107$;
path="act.gain";
expr {
expr="k*2500";
var_expr="$#0#$*2500";
vars {
};
var_names{ k;};
bad_vars{ };
};
update_after=0;
};
};
init {
expr="i = 0";
var_expr="$#0#$ = 0";
vars {
};
var_names{ i;};
bad_vars{ };
};
test {
expr="i < snc_size";
var_expr="$#0#$ < $#1#$";
vars {
};
var_names{ i;snc_size;};
bad_vars{ };
};
iter {
expr="i++";
var_expr="$#0#$++";
vars {
};
var_names{ i;};
bad_vars{ };
};
};
};
};
};
};
};
};
viewers {
name=;
el_typ=TopLevelViewer;
el_def=0;
MainWindowViewer @[0] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="view_win_lft";
value 6 0=0;
};
UserDataItem @[1] {
name="view_win_top";
value 6 0=0;
};
UserDataItem @[2] {
name="view_win_wd";
value 6 0=1;
};
UserDataItem @[3] {
name="view_win_ht";
value 6 0=0.8306772708892822;
};
UserDataItem @[4] {
name="view_win_iconified";
value 1 0=0;
};
UserDataItem @[5] {
name="view_splitter_state";
value 9 0="AAAA/wAAAAAAAAADAAAAyQAAAhkAAAM6AQAAAAYBAAAAAQ==";
};
};
m_data=.projects[0]$111$;
name="Browser";
visible=1;
m_is_root=0;
m_is_viewer_xor_browser=0;
m_is_proj_viewer=1;
m_is_dialog=0;
toolbars {
name=;
el_typ=ToolBar;
el_def=0;
ToolBar @[0] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="view_win_visible";
value 1 0=1;
};
};
m_data=NULL;
name="Application";
visible=0;
lft=0;
top=0.03087649;
o=Horizontal;
};
};
frames {
name=;
el_typ=FrameViewer;
el_def=0;
tabBrowseViewer @[0] {
m_data=NULL;
name="Tree";
visible=1;
root_typ=LeabraProject;
root_md=NULL;
m_root=$111$;
};
PanelViewer @[1] {
m_data=NULL;
name="Panels";
visible=1;
};
T3DataViewer @[2] {
m_data=NULL;
name="T3Frames";
visible=1;
frames {
name=;
el_typ=T3DataViewFrame;
el_def=0;
T3DataViewFrame @[0] {
m_data=NULL;
name="Frame2";
visible=1;
root_view {
m_data=NULL;
m_transform=NULL;
children {
name=;
el_typ=T3DataView;
el_def=0;
NetView @[0] {
m_data=$6$;
FloatTransform @*(.m_transform) {scale={x=1: y=1: z=1: }: rotate={x=1: y=0: z=0: rot=0.35: }: translate={x=0: y=0: z=0: }: };
main_xform {scale={x=1: y=1: z=1: }: rotate={x=1: y=0: z=0: rot=0.35: }: translate={x=0: y=0: z=0: }: };
lay_disp_modes{ Input=0;Striatum=0;SNc=0;GP_Int=0;GP_Ext=0;Thalamus=0;Motor_Cortex=0;Output=0;STN=0;};
scale {
name="ColorScale";
chunks=133;
min=-1;
max=1;
range=1;
zero=0;
spec=.colorspecs[0]$112$;
auto_scale=0;
};
scale_ranges {
name=;
el_typ=ScaleRange;
el_def=0;
ScaleRange @[0] {
name="act";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[1] {
name="r.wt";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[2] {
name="net";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[3] {
name="vcb.hyst";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[4] {
name="spk_amp";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[5] {
name="s.pdw";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[6] {
name="r.pdw";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[7] {
name="s.wt";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[8] {
name="i_thr";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[9] {
name="v_m";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[10] {
name="I_net";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[11] {
name="gc.a";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[12] {
name="gc.h";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[13] {
name="gc.i";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[14] {
name="gc.l";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[15] {
name="vcb.acc";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[16] {
name="da";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[17] {
name="act_dif";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[18] {
name="act_p";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[19] {
name="act_m";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[20] {
name="act_avg";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[21] {
name="act_eq";
auto_scale=0;
min=-1;
max=1;
};
ScaleRange @[22] {
name="wt_prjn";
auto_scale=0;
min=-1;
max=1;
};
};
display=1;
lay_mv=1;
ordered_uvg_list{ act;};
unit_disp_mode=UDM_CYLINDER;
unit_text_disp=UTD_NONE;
max_size {x=14: y=9: z=3: };
font_sizes {
net_name=0.05;
net_vals=0.05;
layer=0.04;
layer_vals=0.03;
prjn=0.01;
unit=0.02;
un_nm_len=3;
};
view_params {
xy_square=0;
unit_spacing=0.05;
prjn_disp=L_R_F;
prjn_name=0;
prjn_width=0.002;
prjn_trans=0.5;
lay_trans=0.5;
unit_trans=0.6;
};
wt_line_disp=0;
wt_line_width=4;
wt_line_thr=0.5;
wt_line_swt=0;
wt_prjn_lay=NULL;
};
};
};
camera_pos {x=0.402234: y=0.6367046: z=1.43305: };
camera_orient {x=-0.8865634: y=-0.412627: z=-0.2091311: rot=0.1436121: };
camera_focdist=1.874225;
bg_color {r=0.8: g=0.8: b=0.8: a=1: };
};
T3DataViewFrame @[1] {
m_data=NULL;
name="CycleOutputData";
visible=1;
root_view {
m_data=NULL;
m_transform=NULL;
children {
name=;
el_typ=T3DataView;
el_def=0;
GraphTableView @[0] {
m_data=$87$;
FloatTransform @*(.m_transform) {scale={x=1: y=1: z=1: }: rotate={x=0: y=0: z=1: rot=0: }: translate={x=1: y=0: z=0: }: };
children {
name=;
el_typ=GraphColView;
el_def=0;
GraphColView @[0] {
m_data=.projects[0].data.gp[1][2].data[0]$113$;
m_transform=NULL;
name="batch";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[1] {
m_data=.projects[0].data.gp[1][2].data[1]$114$;
m_transform=NULL;
name="epoch";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[2] {
m_data=.projects[0].data.gp[1][2].data[2]$115$;
m_transform=NULL;
name="trial";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[3] {
m_data=.projects[0].data.gp[1][2].data[3]$116$;
m_transform=NULL;
name="trial_name";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[4] {
m_data=.projects[0].data.gp[1][2].data[4]$117$;
m_transform=NULL;
name="group_name";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[5] {
m_data=.projects[0].data.gp[1][2].data[5]$118$;
m_transform=NULL;
name="phase_no";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[6] {
m_data=.projects[0].data.gp[1][2].data[6]$119$;
m_transform=NULL;
name="cycle";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[7] {
m_data=.projects[0].data.gp[1][2].data[7]$120$;
m_transform=NULL;
name="sse";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[8] {
m_data=.projects[0].data.gp[1][2].data[8]$121$;
m_transform=NULL;
name="ext_rew";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[9] {
m_data=.projects[0].data.gp[1][2].data[9]$122$;
m_transform=NULL;
name="STN_acts_avg";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[10] {
m_data=.projects[0].data.gp[1][2].data[10]$123$;
m_transform=NULL;
name="Motor__acts_avg";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[11] {
m_data=.projects[0].data.gp[1][2].data[11]$124$;
m_transform=NULL;
name="Thalam_acts_avg";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[12] {
m_data=.projects[0].data.gp[1][2].data[12]$125$;
m_transform=NULL;
name="GP_Int_acts_avg";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[13] {
m_data=.projects[0].data.gp[1][2].data[13]$126$;
m_transform=NULL;
name="GP_Ext_acts_avg";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[14] {
m_data=.projects[0].data.gp[1][2].data[14]$127$;
m_transform=NULL;
name="Output_act";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[15] {
m_data=.projects[0].data.gp[1][2].data[15]$128$;
m_transform=NULL;
name="Output_units_0_act";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
};
main_xform {scale={x=1: y=1: z=1: }: rotate={x=0: y=0: z=1: rot=0: }: translate={x=1: y=0: z=0: }: };
view_rows=10000;
view_range {min=0: max=-1: };
display_on=0;
manip_ctrl_on=1;
x_axis {
m_data=NULL;
m_transform=NULL;
on=1;
axis=X;
col_name="cycle";
fixed_range {fix_min=0: min=0: fix_max=0: max=1: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=1: };
range {min=0: max=1: };
n_ticks=10;
axis_length=1;
row_num=0;
};
z_axis {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Z;
col_name="batch";
fixed_range {fix_min=0: min=0: fix_max=0: max=1: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=1: };
range {min=0: max=1: };
n_ticks=10;
axis_length=1;
row_num=0;
};
plot_1 {
m_data=NULL;
m_transform=NULL;
on=1;
axis=Y;
col_name="STN_acts_avg";
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=-6e-07: max=6e-07: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
plot_2 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name="Motor__acts_avg";
fixed_range {fix_min=0: min=0: fix_max=0: max=0.588618: };
color {name="red": r=1: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0.5886178: };
range {min=0: max=0.5886178: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=SQUARE;
};
plot_3 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name="GP_Int_acts_avg";
fixed_range {fix_min=0: min=0: fix_max=0: max=1: };
color {name="blue": r=0: g=0: b=1: a=1: desc="": };
data_range {min=0: max=1: };
range {min=0: max=1: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=DIAMOND;
};
plot_4 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name="GP_Ext_acts_avg";
fixed_range {fix_min=0: min=5.69961e-10: fix_max=0: max=0.986826: };
color {name="green": r=0: g=1: b=0: a=1: desc="": };
data_range {min=5.699612e-10: max=0.9868261: };
range {min=5.699612e-10: max=0.9868261: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=TRIANGLE;
};
plot_5 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name="Thalam_acts_avg";
fixed_range {fix_min=0: min=0: fix_max=0: max=0.4855: };
color {name="purple": r=0.627451: g=0.1254902: b=0.9411765: a=1: desc="": };
data_range {min=0: max=0.4854995: };
range {min=0: max=0.4854995: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=PLUS;
};
alt_y_2=0;
alt_y_3=0;
alt_y_4=0;
alt_y_5=0;
graph_type=XY;
plot_style=LINE;
line_width=2;
point_size=MEDIUM;
point_spacing=1;
bar_space=0.2;
color_mode=VALUE_COLOR;
negative_draw=0;
axis_font_size=0.05;
label_font_size=0.04;
label_spacing=-1;
matrix_mode=SEP_GRAPHS;
mat_layout=BOT_ZERO;
mat_odd_vert=1;
err_1 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_2 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_3 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_4 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_5 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_spacing=1;
err_bar_width=0.02;
color_axis {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
row_num=0;
};
colorscale {
name="ColorScale";
chunks=133;
min=-1;
max=1;
range=0;
zero=0;
spec=$112$;
auto_scale=0;
};
raster_axis {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
row_num=0;
};
thresh=0.5;
thr_line_len=0.48;
width=1;
depth=1;
two_d_font=0;
two_d_font_scale=350;
};
};
};
camera_pos {x=1.37625: y=0.4125: z=1.389598: };
camera_orient {x=0: y=0: z=1: rot=0: };
camera_focdist=1.899598;
bg_color {r=0.8: g=0.8: b=0.8: a=1: };
};
T3DataViewFrame @[2] {
m_data=NULL;
name="EpochOutputData";
visible=1;
root_view {
m_data=NULL;
m_transform=NULL;
children {
name=;
el_typ=T3DataView;
el_def=0;
GraphTableView @[0] {
m_data=$92$;
FloatTransform @*(.m_transform) {scale={x=1: y=1: z=1: }: rotate={x=0: y=0: z=1: rot=0: }: translate={x=1: y=0: z=0: }: };
children {
name=;
el_typ=GraphColView;
el_def=0;
GraphColView @[0] {
m_data=.projects[0].data.gp[1][1].data[0]$129$;
m_transform=NULL;
name="batch";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=1: };
data_range {min=0: max=0: };
};
GraphColView @[1] {
m_data=.projects[0].data.gp[1][1].data[1]$130$;
m_transform=NULL;
name="epoch";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=4: };
data_range {min=0: max=0: };
};
GraphColView @[2] {
m_data=.projects[0].data.gp[1][1].data[2]$131$;
m_transform=NULL;
name="avg_sse";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[3] {
m_data=.projects[0].data.gp[1][1].data[3]$132$;
m_transform=NULL;
name="cnt_err";
visible=1;
fixed_range {fix_min=1: min=0: fix_max=1: max=13: };
data_range {min=0: max=0: };
};
GraphColView @[4] {
m_data=.projects[0].data.gp[1][1].data[4]$133$;
m_transform=NULL;
name="avg_ext_rew";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[5] {
m_data=.projects[0].data.gp[1][1].data[5]$134$;
m_transform=NULL;
name="Output_sse";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
};
main_xform {scale={x=1: y=1: z=1: }: rotate={x=0: y=0: z=1: rot=0: }: translate={x=1: y=0: z=0: }: };
view_rows=10000;
view_range {min=0: max=-1: };
display_on=0;
manip_ctrl_on=1;
x_axis {
m_data=NULL;
m_transform=NULL;
on=1;
axis=X;
col_name="epoch";
fixed_range {fix_min=0: min=0: fix_max=0: max=4: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=4: };
range {min=0: max=4: };
n_ticks=10;
axis_length=1;
row_num=0;
};
z_axis {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Z;
col_name="batch";
fixed_range {fix_min=0: min=0: fix_max=0: max=1: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=1: };
range {min=0: max=1: };
n_ticks=10;
axis_length=1;
row_num=0;
};
plot_1 {
m_data=NULL;
m_transform=NULL;
on=1;
axis=Y;
col_name="cnt_err";
fixed_range {fix_min=1: min=0: fix_max=1: max=13: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=13: };
range {min=0: max=13: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
plot_2 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=1: };
color {name="red": r=1: g=0: b=0: a=1: desc="": };
data_range {min=0: max=1: };
range {min=0: max=1: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=SQUARE;
};
plot_3 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=1: };
color {name="blue": r=0: g=0: b=1: a=1: desc="": };
data_range {min=0: max=1: };
range {min=0: max=1: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=DIAMOND;
};
plot_4 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=1: };
color {name="green3": r=0: g=0.8039216: b=0: a=1: desc="": };
data_range {min=0: max=1: };
range {min=0: max=1: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=TRIANGLE;
};
plot_5 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=1: };
color {name="purple": r=0.627451: g=0.1254902: b=0.9411765: a=1: desc="": };
data_range {min=0: max=1: };
range {min=0: max=1: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=PLUS;
};
alt_y_2=0;
alt_y_3=0;
alt_y_4=0;
alt_y_5=0;
graph_type=XY;
plot_style=LINE;
line_width=2;
point_size=MEDIUM;
point_spacing=1;
bar_space=0.2;
color_mode=VALUE_COLOR;
negative_draw=0;
axis_font_size=0.05;
label_font_size=0.04;
label_spacing=-1;
matrix_mode=SEP_GRAPHS;
mat_layout=BOT_ZERO;
mat_odd_vert=1;
err_1 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_2 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_3 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_4 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_5 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_spacing=1;
err_bar_width=0.02;
color_axis {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
row_num=0;
};
colorscale {
name="ColorScale";
chunks=133;
min=-1;
max=1;
range=0;
zero=0;
spec=$112$;
auto_scale=0;
};
raster_axis {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
row_num=0;
};
thresh=0.5;
thr_line_len=0.48;
width=1;
depth=1;
two_d_font=0;
two_d_font_scale=350;
};
};
};
camera_pos {x=1.4275: y=1.095: z=2.27914: };
camera_orient {x=0: y=0: z=1: rot=0: };
camera_focdist=2.76914;
bg_color {r=0.8: g=0.8: b=0.8: a=1: };
};
T3DataViewFrame @[3] {
m_data=NULL;
name="EpochOutputData_Group";
visible=1;
root_view {
m_data=NULL;
m_transform=NULL;
children {
name=;
el_typ=T3DataView;
el_def=0;
GraphTableView @[0] {
m_data=.projects[0].data.gp[2][0]$135$;
FloatTransform @*(.m_transform) {scale={x=1: y=1: z=1: }: rotate={x=0: y=0: z=1: rot=0: }: translate={x=1: y=0: z=0: }: };
children {
name=;
el_typ=GraphColView;
el_def=0;
GraphColView @[0] {
m_data=.projects[0].data.gp[2][0].data[0]$136$;
m_transform=NULL;
name="epoch_group";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=4: };
data_range {min=0: max=0: };
};
GraphColView @[1] {
m_data=.projects[0].data.gp[2][0].data[1]$137$;
m_transform=NULL;
name="batch_mean";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[2] {
m_data=.projects[0].data.gp[2][0].data[2]$138$;
m_transform=NULL;
name="batch_sem";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[3] {
m_data=.projects[0].data.gp[2][0].data[3]$139$;
m_transform=NULL;
name="avg_sse_mean";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[4] {
m_data=.projects[0].data.gp[2][0].data[4]$140$;
m_transform=NULL;
name="avg_sse_sem";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[5] {
m_data=.projects[0].data.gp[2][0].data[5]$141$;
m_transform=NULL;
name="cnt_err_mean";
visible=1;
fixed_range {fix_min=1: min=0: fix_max=1: max=7: };
data_range {min=0: max=0: };
};
GraphColView @[6] {
m_data=.projects[0].data.gp[2][0].data[6]$142$;
m_transform=NULL;
name="cnt_err_sem";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[7] {
m_data=.projects[0].data.gp[2][0].data[7]$143$;
m_transform=NULL;
name="avg_ext_rew_mean";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[8] {
m_data=.projects[0].data.gp[2][0].data[8]$144$;
m_transform=NULL;
name="avg_ext_rew_sem";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[9] {
m_data=.projects[0].data.gp[2][0].data[9]$145$;
m_transform=NULL;
name="Output_sse_mean";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
GraphColView @[10] {
m_data=.projects[0].data.gp[2][0].data[10]$146$;
m_transform=NULL;
name="Output_sse_sem";
visible=1;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
data_range {min=0: max=0: };
};
};
main_xform {scale={x=1: y=1: z=1: }: rotate={x=0: y=0: z=1: rot=0: }: translate={x=1: y=0: z=0: }: };
view_rows=10000;
view_range {min=0: max=4: };
display_on=1;
manip_ctrl_on=1;
x_axis {
m_data=NULL;
m_transform=NULL;
on=1;
axis=X;
col_name="epoch_group";
fixed_range {fix_min=0: min=0: fix_max=0: max=4: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=4: };
range {min=0: max=4: };
n_ticks=10;
axis_length=1;
row_num=0;
};
z_axis {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Z;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
row_num=0;
};
plot_1 {
m_data=NULL;
m_transform=NULL;
on=1;
axis=Y;
col_name="cnt_err_mean";
fixed_range {fix_min=1: min=0: fix_max=1: max=7: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=7: };
range {min=0: max=7: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
plot_2 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="red": r=1: g=0: b=0: a=1: desc="": };
data_range {min=0: max=1: };
range {min=0: max=1: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=SQUARE;
};
plot_3 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="blue": r=0: g=0: b=1: a=1: desc="": };
data_range {min=0: max=1: };
range {min=0: max=1: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=DIAMOND;
};
plot_4 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="green3": r=0: g=0.8039216: b=0: a=1: desc="": };
data_range {min=0: max=1: };
range {min=0: max=1: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=TRIANGLE;
};
plot_5 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="purple": r=0.627451: g=0.1254902: b=0.9411765: a=1: desc="": };
data_range {min=0: max=1: };
range {min=0: max=1: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=PLUS;
};
alt_y_2=0;
alt_y_3=0;
alt_y_4=0;
alt_y_5=0;
graph_type=XY;
plot_style=LINE;
line_width=2;
point_size=MEDIUM;
point_spacing=1;
bar_space=0.2;
color_mode=FIXED_COLOR;
negative_draw=0;
axis_font_size=0.05;
label_font_size=0.04;
label_spacing=-1;
matrix_mode=SEP_GRAPHS;
mat_layout=BOT_ZERO;
mat_odd_vert=1;
err_1 {
m_data=NULL;
m_transform=NULL;
on=1;
axis=Y;
col_name="cnt_err_sem";
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_2 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_3 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_4 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_5 {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
line_style=SOLID;
point_style=CIRCLE;
};
err_spacing=1;
err_bar_width=0.02;
color_axis {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
row_num=0;
};
colorscale {
name="ColorScale";
chunks=133;
min=-1;
max=1;
range=0;
zero=0;
spec=$112$;
auto_scale=0;
};
raster_axis {
m_data=NULL;
m_transform=NULL;
on=0;
axis=Y;
col_name=;
fixed_range {fix_min=0: min=0: fix_max=0: max=0: };
color {name="black": r=0: g=0: b=0: a=1: desc="": };
data_range {min=0: max=0: };
range {min=0: max=0: };
n_ticks=10;
axis_length=1;
row_num=0;
};
thresh=0.5;
thr_line_len=0.48;
width=1;
depth=1;
two_d_font=0;
two_d_font_scale=350;
};
};
};
camera_pos {x=1.406748: y=0.445: z=1.648402: };
camera_orient {x=0: y=0: z=1: rot=0: };
camera_focdist=1.660902;
bg_color {r=0.8: g=0.8: b=0.8: a=1: };
};
};
};
};
docks {
name=;
el_typ=DockViewer;
el_def=0;
ToolBoxDockViewer @[0] {
UserDataItem_List @*(.user_data_) {
name=;
el_typ=UserDataItemBase;
el_def=0;
UserDataItem @[0] {
name="view_win_lft";
value 6 0=0;
};
UserDataItem @[1] {
name="view_win_top";
value 6 0=0.06474103778600693;
};
UserDataItem @[2] {
name="view_win_wd";
value 6 0=0.0535714291036129;
};
UserDataItem @[3] {
name="view_win_ht";
value 6 0=0.7131474018096924;
};
UserDataItem @[4] {
name="view_win_iconified";
value 1 0=0;
};
UserDataItem @[5] {
name="view_visible";
value 1 0=1;
};
};
m_data=NULL;
name="Tools";
visible=1;
dock_flags=DV_MOVABLE|DV_FLOATABLE;
dock_area=1;
};
};
};
};
use_change_log=0;
last_change_desc="
";
networks {
name=;
el_typ=LeabraNetwork;
el_def=0;
LeabraNetwork @[0] {
name="IntactNet";
desc=;
specs {
name=;
el_typ=ConSpec;
el_def=0;
ConSpec @[0] {
name="ConSpec_0";
desc=;
unique{ };
children {
name=;
el_typ=ConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=0: var=0.5: par=1: };
wt_limits {type=NONE: min=-1: max=1: sym=0: };
};
UniformRndPrjnSpec @[1] {
name="STN_GPe_RndPrjnSpec_0";
desc=;
unique{ };
children {
name=;
el_typ=UniformRndPrjnSpec;
el_def=0;
};
self_con=0;
init_wts=0;
p_con=1;
sym_self=1;
same_seed=0;
rndm_seed {
name=;
seed{ 1942590695;1834211083;377798523;839440218;-583226373;705799995;-1978402924;1154338458;-462115379;246653898;1399794034;-1499780727;-1523899271;930991332;1290781086;1827104268;-716397506;1983718083;1167094774;951783845;-409479048;-735831888;435869947;-904086293;2026496515;403361634;-1944445990;-1372202487;2126959386;162557442;1012427038;1588232218;-1146450552;-853562653;-1656209805;-1888253373;1759765356;1728652414;-337014879;-1280803374;-575509963;-1765188122;-384524531;-821312351;-1870977276;1513531657;1301908149;699607679;871722190;941230124;480719736;-879564786;-698046303;1521335322;-1447079851;-716252964;526031609;1993676142;1340787872;1530654116;-969427509;1134915315;2122089688;-994370515;560929468;389650548;-1122373860;166734577;-286623372;-120943880;891391534;1880819345;-178283282;540924398;-472340061;2110112996;-1254638769;1538060551;1673190834;691970619;-959237381;-1357813313;1768507679;-1214978919;785612098;1900739683;2119690407;432529262;1597777345;-76740981;1752989913;507595810;1970077571;2120922148;-975091467;-1195485087;-2116172007;-1448521787;-1611468311;1523616406;1943148525;-1864229143;-937095503;-909740123;1292237191;387974384;538406262;509446046;-1972547268;-1733600336;-62144424;-1546025606;-1876304799;1885604132;1402880751;-482628413;1554473651;267768126;-629382805;-1249311349;-1924387261;1461040170;509667270;-779074633;-17507771;918255996;-143015157;-2090640919;315301152;702021484;808635402;-2068859673;-1347883889;1693940293;1805057885;-1668427604;-2137413199;-1104482850;208495526;118430790;-722180698;-1217415633;-224256734;1932248267;-1065779137;-10863097;487580081;-196290919;680669227;1979774005;-2037050706;21949689;-156516075;1715173136;1755205487;1472371560;1309034448;-829238765;-135616049;-2013309212;-1082863329;-899363014;-1287869739;-870456151;581622390;-1908234714;-1126900746;764733716;-925858573;-1751091051;-463341148;644681747;-1914494877;373038127;1588478313;1485299105;661291536;-1180395328;-1144161539;94598643;-1088175949;1032986199;-1100837220;407686955;-1082470443;1911682705;1627415103;310787166;1264015414;424266369;-2027001547;-1752167701;-228113290;1600850810;-2083186300;-1987228633;2000848866;-1395386373;80656148;317238254;-1145747623;-511425939;1346724944;180295410;-544883384;1732680478;-1525854862;236088797;1630557266;1645104332;445726791;1077576696;-2008807651;-2004400849;1274587809;1448655060;1550063216;454064067;-221087611;-594550512;-1272829249;1417249337;463284529;432100395;1078285484;-959540334;21248325;-866258652;-1081481128;-1833368508;-1379133116;-1920337657;-1251994147;1350814969;1508926409;1457463506;-436457777;-104638987;-300707471;-917721278;-620891785;523732153;445406412;1634813528;463926328;1581054136;170598643;-416905380;-1864557289;-202014810;1443533836;-1579728646;-1569783365;398032325;603645793;1459091613;-89353942;-1032688516;-1615894428;-767185823;-1946032362;931360128;-836341533;-1238311242;26872554;-1198342849;223875202;1787898723;1347039535;1426899535;712166878;1007370589;-2121265931;1279068215;1048275580;665564878;-854576448;1115606454;-1938871068;437377701;1893989311;60057612;-1411480578;-1802660403;-1229197402;-1114162509;1246510289;-100045555;-771237462;-321537560;1645429527;876081854;-344012824;613155858;-58817405;150811542;-10210852;2112860797;-528954460;-50850354;-649972970;1499955930;1421666445;1351215729;-1262602010;-980699257;1941355339;-961944897;-413046848;-411502877;522743470;-1432644237;-1120760559;-776500101;-1809149014;2127519490;470896056;662683123;-567303983;121758873;-1581863489;-91906121;-996490915;1435662432;1657906168;-1808273636;-1008367748;1370467542;775127407;336430775;908983458;-1287820551;2018562582;684733517;1364159782;839309547;1634308483;-497817377;118348535;-1269053010;955697418;-461911650;286131813;-300370221;1037538534;2023161463;-259022712;-1784489335;970316778;1578200481;500283714;1165730615;1099858613;850929875;-122366113;1415506233;-119359212;-2033313111;2063284557;168272506;1014246244;1972611072;1049837341;2120277277;-1358473916;867839429;1548671628;375995816;335745466;-92761852;-1313606594;983851877;957484913;-786771928;1174167013;457619777;1577173252;29408666;-1853196004;-954511750;-9741238;1764765760;-1106091459;418868525;1218646124;244543749;1280742435;-1669454769;1391623016;-1782787888;1672996012;-660347923;1734104018;-70130822;-1181208948;-285723476;-1959961034;42073851;-1354695576;-548612189;-692983842;1398992433;-1954474622;-414265610;1827986420;-1740813210;392408431;812967600;306150025;1150550306;-1577525793;522329421;-1905599679;1183746118;1873227418;113271279;-118624832;2064640613;91279896;-1296994070;923686864;-1237563925;-671532219;432504743;376157897;-1964026811;-509307951;-1291095292;-92298376;-440266966;742491999;-363297213;907719292;-2097711796;-72292200;797405338;-902353499;-166246906;-943459407;-1618209704;296966888;276718739;881687730;-63517562;-481360418;-1200473828;-144528583;2055425204;425514158;-972984629;-437772543;955225817;-1571664087;1255280381;-1520917476;411210494;-1044569805;1196139168;1000345811;314304961;788619297;-1721237341;1855193732;-688848034;-560160224;110451616;205166806;1045130054;606457223;-106064310;-350539693;-1199925658;-1553567608;1827860289;-495518821;-289479856;-1888403873;66174658;-1741606928;-1734480553;1792669379;2112354548;649961546;-1072485902;1950021075;-145032130;-1448841129;-455451267;-1966366114;-1298920795;837046384;-1783493271;1554055716;544335337;-302006934;-149606522;2022999324;826072250;-549276476;1862748770;1989186214;1089115433;956552701;1745621701;-2034815611;614102796;1479888671;-146686913;-690079684;-1114868597;-2016690506;2090920277;-830594320;-1261017876;2072821639;194345641;-1605828714;484660319;-454560202;1794417171;511341824;-1255389158;-669363423;1164033229;-1107097310;828519990;1450362036;476068860;1972265003;-1879752310;1894610209;-2128722743;1301770305;-1624467838;-731973801;-337476939;-1809040191;1525193216;-2001741915;-2027225998;-1162995606;-717541281;2050620663;-1135005089;2015601957;-1661832271;334966618;-236871560;-2075212969;-2141684690;1078043241;1723366617;828122061;147352703;-1999649046;-903143402;-1024430520;1633016716;-1604804280;1647853874;1626223577;613437415;854959232;-1237163556;-230090669;-278438371;1723117265;500023237;-1216412905;1717506101;1373064296;1994723034;1814828511;2067592941;937637146;-1370177392;-1274587966;-48108349;-378201671;1262614325;62390688;164974972;-830307263;-1714046089;1359544797;2016161042;83584009;930716322;-497279679;2023049077;-206104661;1501245447;562523072;104611198;-46372430;298890283;2110698786;-1091302072;20052267;-1304541777;140132249;-1245355586;-727077616;-316829592;152731111;-154344094;1345278005;-558417490;1281066959;-1469762051;-383552934;199222085;413618054;1552260824;-576003758;105415137;2042323739;1646910169;1084993049;840296744;216680633;1409468883;-1555896089;734078106;};
mti=115;
};
};
UniformRndPrjnSpec @[2] {
name="GPe_STN_RndPrjnSpec_1";
desc=;
unique{ };
children {
name=;
el_typ=UniformRndPrjnSpec;
el_def=0;
};
self_con=0;
init_wts=0;
p_con=0.4;
sym_self=1;
same_seed=0;
rndm_seed {
name=;
seed{ 1942590695;1834211083;377798523;839440218;-583226373;705799995;-1978402924;1154338458;-462115379;246653898;1399794034;-1499780727;-1523899271;930991332;1290781086;1827104268;-716397506;1983718083;1167094774;951783845;-409479048;-735831888;435869947;-904086293;2026496515;403361634;-1944445990;-1372202487;2126959386;162557442;1012427038;1588232218;-1146450552;-853562653;-1656209805;-1888253373;1759765356;1728652414;-337014879;-1280803374;-575509963;-1765188122;-384524531;-821312351;-1870977276;1513531657;1301908149;699607679;871722190;941230124;480719736;-879564786;-698046303;1521335322;-1447079851;-716252964;526031609;1993676142;1340787872;1530654116;-969427509;1134915315;2122089688;-994370515;560929468;389650548;-1122373860;166734577;-286623372;-120943880;891391534;1880819345;-178283282;540924398;-472340061;2110112996;-1254638769;1538060551;1673190834;691970619;-959237381;-1357813313;1768507679;-1214978919;785612098;1900739683;2119690407;432529262;1597777345;-76740981;1752989913;507595810;1970077571;2120922148;-975091467;-1195485087;-2116172007;-1448521787;-1611468311;1523616406;1943148525;-1864229143;-937095503;-909740123;1292237191;387974384;538406262;509446046;-1972547268;-1733600336;-62144424;-1546025606;-1876304799;1885604132;1402880751;-482628413;1554473651;267768126;-629382805;-1249311349;-1924387261;1461040170;509667270;-779074633;-17507771;918255996;-143015157;-2090640919;315301152;702021484;808635402;-2068859673;-1347883889;1693940293;1805057885;-1668427604;-2137413199;-1104482850;208495526;118430790;-722180698;-1217415633;-224256734;1932248267;-1065779137;-10863097;487580081;-196290919;680669227;1979774005;-2037050706;21949689;-156516075;1715173136;1755205487;1472371560;1309034448;-829238765;-135616049;-2013309212;-1082863329;-899363014;-1287869739;-870456151;581622390;-1908234714;-1126900746;764733716;-925858573;-1751091051;-463341148;644681747;-1914494877;373038127;1588478313;1485299105;661291536;-1180395328;-1144161539;94598643;-1088175949;1032986199;-1100837220;407686955;-1082470443;1911682705;1627415103;310787166;1264015414;424266369;-2027001547;-1752167701;-228113290;1600850810;-2083186300;-1987228633;2000848866;-1395386373;80656148;317238254;-1145747623;-511425939;1346724944;180295410;-544883384;1732680478;-1525854862;236088797;1630557266;1645104332;445726791;1077576696;-2008807651;-2004400849;1274587809;1448655060;1550063216;454064067;-221087611;-594550512;-1272829249;1417249337;463284529;432100395;1078285484;-959540334;21248325;-866258652;-1081481128;-1833368508;-1379133116;-1920337657;-1251994147;1350814969;1508926409;1457463506;-436457777;-104638987;-300707471;-917721278;-620891785;523732153;445406412;1634813528;463926328;1581054136;170598643;-416905380;-1864557289;-202014810;1443533836;-1579728646;-1569783365;398032325;603645793;1459091613;-89353942;-1032688516;-1615894428;-767185823;-1946032362;931360128;-836341533;-1238311242;26872554;-1198342849;223875202;1787898723;1347039535;1426899535;712166878;1007370589;-2121265931;1279068215;1048275580;665564878;-854576448;1115606454;-1938871068;437377701;1893989311;60057612;-1411480578;-1802660403;-1229197402;-1114162509;1246510289;-100045555;-771237462;-321537560;1645429527;876081854;-344012824;613155858;-58817405;150811542;-10210852;2112860797;-528954460;-50850354;-649972970;1499955930;1421666445;1351215729;-1262602010;-980699257;1941355339;-961944897;-413046848;-411502877;522743470;-1432644237;-1120760559;-776500101;-1809149014;2127519490;470896056;662683123;-567303983;121758873;-1581863489;-91906121;-996490915;1435662432;1657906168;-1808273636;-1008367748;1370467542;775127407;336430775;908983458;-1287820551;2018562582;684733517;1364159782;839309547;1634308483;-497817377;118348535;-1269053010;955697418;-461911650;286131813;-300370221;1037538534;2023161463;-259022712;-1784489335;970316778;1578200481;500283714;1165730615;1099858613;850929875;-122366113;1415506233;-119359212;-2033313111;2063284557;168272506;1014246244;1972611072;1049837341;2120277277;-1358473916;867839429;1548671628;375995816;335745466;-92761852;-1313606594;983851877;957484913;-786771928;1174167013;457619777;1577173252;29408666;-1853196004;-954511750;-9741238;1764765760;-1106091459;418868525;1218646124;244543749;1280742435;-1669454769;1391623016;-1782787888;1672996012;-660347923;1734104018;-70130822;-1181208948;-285723476;-1959961034;42073851;-1354695576;-548612189;-692983842;1398992433;-1954474622;-414265610;1827986420;-1740813210;392408431;812967600;306150025;1150550306;-1577525793;522329421;-1905599679;1183746118;1873227418;113271279;-118624832;2064640613;91279896;-1296994070;923686864;-1237563925;-671532219;432504743;376157897;-1964026811;-509307951;-1291095292;-92298376;-440266966;742491999;-363297213;907719292;-2097711796;-72292200;797405338;-902353499;-166246906;-943459407;-1618209704;296966888;276718739;881687730;-63517562;-481360418;-1200473828;-144528583;2055425204;425514158;-972984629;-437772543;955225817;-1571664087;1255280381;-1520917476;411210494;-1044569805;1196139168;1000345811;314304961;788619297;-1721237341;1855193732;-688848034;-560160224;110451616;205166806;1045130054;606457223;-106064310;-350539693;-1199925658;-1553567608;1827860289;-495518821;-289479856;-1888403873;66174658;-1741606928;-1734480553;1792669379;2112354548;649961546;-1072485902;1950021075;-145032130;-1448841129;-455451267;-1966366114;-1298920795;837046384;-1783493271;1554055716;544335337;-302006934;-149606522;2022999324;826072250;-549276476;1862748770;1989186214;1089115433;956552701;1745621701;-2034815611;614102796;1479888671;-146686913;-690079684;-1114868597;-2016690506;2090920277;-830594320;-1261017876;2072821639;194345641;-1605828714;484660319;-454560202;1794417171;511341824;-1255389158;-669363423;1164033229;-1107097310;828519990;1450362036;476068860;1972265003;-1879752310;1894610209;-2128722743;1301770305;-1624467838;-731973801;-337476939;-1809040191;1525193216;-2001741915;-2027225998;-1162995606;-717541281;2050620663;-1135005089;2015601957;-1661832271;334966618;-236871560;-2075212969;-2141684690;1078043241;1723366617;828122061;147352703;-1999649046;-903143402;-1024430520;1633016716;-1604804280;1647853874;1626223577;613437415;854959232;-1237163556;-230090669;-278438371;1723117265;500023237;-1216412905;1717506101;1373064296;1994723034;1814828511;2067592941;937637146;-1370177392;-1274587966;-48108349;-378201671;1262614325;62390688;164974972;-830307263;-1714046089;1359544797;2016161042;83584009;930716322;-497279679;2023049077;-206104661;1501245447;562523072;104611198;-46372430;298890283;2110698786;-1091302072;20052267;-1304541777;140132249;-1245355586;-727077616;-316829592;152731111;-154344094;1345278005;-558417490;1281066959;-1469762051;-383552934;199222085;413618054;1552260824;-576003758;105415137;2042323739;1646910169;1084993049;840296744;216680633;1409468883;-1555896089;734078106;};
mti=115;
};
};
BaseSpec_Group @.gp[0] {
name="LeabraPrjns";
el_typ=LeabraUnitSpec;
el_def=0;
FullPrjnSpec @[0] {
name="FullPrjnSpec_0";
desc=;
unique{ };
children {
name=;
el_typ=FullPrjnSpec;
el_def=0;
};
self_con=1;
init_wts=0;
};
OneToOnePrjnSpec @[1] {
name="OneToOne";
desc=;
unique{ self_con;};
children {
name=;
el_typ=OneToOnePrjnSpec;
el_def=0;
};
self_con=0;
init_wts=0;
n_conns=-1;
recv_start=0;
send_start=0;
};
TesselPrjnSpec @[2] {
name="Striatum_GPext";
desc=;
unique{ };
children {
name=;
el_typ=TesselPrjnSpec;
el_def=0;
TesselPrjnSpec @[0] {
name="PFC_Act_Deep";
desc=;
unique{ send_scale;};
children {
name=;
el_typ=TesselPrjnSpec;
el_def=0;
};
self_con=0;
init_wts=0;
recv_off {x=0: y=0: };
recv_n {x=-1: y=-1: };
recv_skip {x=1: y=1: };
recv_group {x=1: y=1: };
wrap=1;
send_scale {x=1: y=0: };
send_border {x=1: y=0: };
send_offs {
name=;
el_typ=TessEl;
el_def=0;
TessEl @[0] {
send_off {x=1: y=0: };
wt_val=1;
};
TessEl @[1] {
send_off {x=1: y=0: };
wt_val=1;
};
TessEl @[2] {
send_off {x=1: y=1: };
wt_val=1;
};
TessEl @[3] {
send_off {x=1: y=1: };
wt_val=1;
};
TessEl @[4] {
send_off {x=1: y=2: };
wt_val=1;
};
TessEl @[5] {
send_off {x=1: y=2: };
wt_val=1;
};
TessEl @[6] {
send_off {x=1: y=3: };
wt_val=1;
};
TessEl @[7] {
send_off {x=1: y=3: };
wt_val=1;
};
TessEl @[8] {
send_off {x=1: y=4: };
wt_val=1;
};
TessEl @[9] {
send_off {x=1: y=4: };
wt_val=1;
};
TessEl @[10] {
send_off {x=1: y=5: };
wt_val=1;
};
TessEl @[11] {
send_off {x=1: y=5: };
wt_val=1;
};
TessEl @[12] {
send_off {x=1: y=6: };
wt_val=1;
};
TessEl @[13] {
send_off {x=1: y=6: };
wt_val=1;
};
TessEl @[14] {
send_off {x=1: y=7: };
wt_val=1;
};
TessEl @[15] {
send_off {x=1: y=7: };
wt_val=1;
};
TessEl @[16] {
send_off {x=1: y=8: };
wt_val=1;
};
TessEl @[17] {
send_off {x=1: y=8: };
wt_val=1;
};
};
};
};
self_con=0;
init_wts=0;
recv_off {x=0: y=0: };
recv_n {x=-1: y=-1: };
recv_skip {x=1: y=1: };
recv_group {x=1: y=1: };
wrap=1;
send_scale {x=1: y=1: };
send_border {x=1: y=0: };
send_offs {
name=;
el_typ=TessEl;
el_def=0;
TessEl @[0] {
send_off {x=1: y=0: };
wt_val=1;
};
TessEl @[1] {
send_off {x=1: y=0: };
wt_val=1;
};
TessEl @[2] {
send_off {x=1: y=1: };
wt_val=1;
};
TessEl @[3] {
send_off {x=1: y=1: };
wt_val=1;
};
TessEl @[4] {
send_off {x=1: y=2: };
wt_val=1;
};
TessEl @[5] {
send_off {x=1: y=2: };
wt_val=1;
};
TessEl @[6] {
send_off {x=1: y=3: };
wt_val=1;
};
TessEl @[7] {
send_off {x=1: y=3: };
wt_val=1;
};
TessEl @[8] {
send_off {x=1: y=4: };
wt_val=1;
};
TessEl @[9] {
send_off {x=1: y=4: };
wt_val=1;
};
TessEl @[10] {
send_off {x=1: y=5: };
wt_val=1;
};
TessEl @[11] {
send_off {x=1: y=5: };
wt_val=1;
};
TessEl @[12] {
send_off {x=1: y=6: };
wt_val=1;
};
TessEl @[13] {
send_off {x=1: y=6: };
wt_val=1;
};
TessEl @[14] {
send_off {x=1: y=7: };
wt_val=1;
};
TessEl @[15] {
send_off {x=1: y=7: };
wt_val=1;
};
TessEl @[16] {
send_off {x=1: y=8: };
wt_val=1;
};
TessEl @[17] {
send_off {x=1: y=8: };
wt_val=1;
};
};
};
TesselPrjnSpec @[3] {
name="dMatrosomesGP";
desc=;
unique{ };
children {
name=;
el_typ=TesselPrjnSpec;
el_def=0;
};
self_con=0;
init_wts=0;
recv_off {x=0: y=0: };
recv_n {x=-1: y=-1: };
recv_skip {x=1: y=1: };
recv_group {x=1: y=9: };
wrap=0;
send_scale {x=1: y=1: };
send_border {x=0: y=0: };
send_offs {
name=;
el_typ=TessEl;
el_def=0;
TessEl @[0] {
send_off {x=0: y=0: };
wt_val=1;
};
TessEl @[1] {
send_off {x=0: y=1: };
wt_val=1;
};
TessEl @[2] {
send_off {x=0: y=2: };
wt_val=1;
};
TessEl @[3] {
send_off {x=0: y=3: };
wt_val=1;
};
TessEl @[4] {
send_off {x=0: y=4: };
wt_val=1;
};
TessEl @[5] {
send_off {x=0: y=5: };
wt_val=1;
};
TessEl @[6] {
send_off {x=0: y=6: };
wt_val=1;
};
TessEl @[7] {
send_off {x=0: y=7: };
wt_val=1;
};
TessEl @[8] {
send_off {x=0: y=8: };
wt_val=1;
};
};
};
TesselPrjnSpec @[4] {
name="SNc_GO";
desc=;
unique{ };
children {
name=;
el_typ=TesselPrjnSpec;
el_def=0;
};
self_con=0;
init_wts=0;
recv_off {x=0: y=0: };
recv_n {x=2: y=-1: };
recv_skip {x=1: y=1: };
recv_group {x=1: y=1: };
wrap=1;
send_scale {x=1: y=1: };
send_border {x=0: y=0: };
send_offs {
name=;
el_typ=TessEl;
el_def=0;
TessEl @[0] {
send_off {x=0: y=0: };
wt_val=1;
};
TessEl @[1] {
send_off {x=1: y=0: };
wt_val=1;
};
TessEl @[2] {
send_off {x=0: y=1: };
wt_val=1;
};
TessEl @[3] {
send_off {x=1: y=1: };
wt_val=1;
};
TessEl @[4] {
send_off {x=0: y=2: };
wt_val=1;
};
TessEl @[5] {
send_off {x=1: y=2: };
wt_val=1;
};
TessEl @[6] {
send_off {x=0: y=3: };
wt_val=1;
};
TessEl @[7] {
send_off {x=1: y=3: };
wt_val=1;
};
TessEl @[8] {
send_off {x=0: y=4: };
wt_val=1;
};
TessEl @[9] {
send_off {x=1: y=4: };
wt_val=1;
};
TessEl @[10] {
send_off {x=0: y=5: };
wt_val=1;
};
TessEl @[11] {
send_off {x=1: y=5: };
wt_val=1;
};
};
};
TesselPrjnSpec @[5] {
name="MotorCortex_Striatum";
desc=;
unique{ };
children {
name=;
el_typ=TesselPrjnSpec;
el_def=0;
};
self_con=0;
init_wts=0;
recv_off {x=0: y=0: };
recv_n {x=-1: y=-1: };
recv_skip {x=1: y=1: };
recv_group {x=1: y=9: };
wrap=1;
send_scale {x=1: y=1: };
send_border {x=0: y=0: };
send_offs {
name=;
el_typ=TessEl;
el_def=0;
TessEl @[0] {
send_off {x=0: y=0: };
wt_val=1;
};
TessEl @[1] {
send_off {x=0: y=1: };
wt_val=1;
};
};
};
TesselPrjnSpec @[6] {
name="SNc_NOGO";
desc=;
unique{ };
children {
name=;
el_typ=TesselPrjnSpec;
el_def=0;
};
self_con=0;
init_wts=0;
recv_off {x=2: y=0: };
recv_n {x=2: y=-1: };
recv_skip {x=1: y=1: };
recv_group {x=1: y=1: };
wrap=1;
send_scale {x=1: y=1: };
send_border {x=0: y=0: };
send_offs {
name=;
el_typ=TessEl;
el_def=0;
TessEl @[0] {
send_off {x=0: y=0: };
wt_val=1;
};
TessEl @[1] {
send_off {x=1: y=0: };
wt_val=1;
};
TessEl @[2] {
send_off {x=0: y=1: };
wt_val=1;
};
TessEl @[3] {
send_off {x=1: y=1: };
wt_val=1;
};
TessEl @[4] {
send_off {x=0: y=2: };
wt_val=1;
};
TessEl @[5] {
send_off {x=1: y=2: };
wt_val=1;
};
TessEl @[6] {
send_off {x=0: y=3: };
wt_val=1;
};
TessEl @[7] {
send_off {x=1: y=3: };
wt_val=1;
};
TessEl @[8] {
send_off {x=0: y=4: };
wt_val=1;
};
TessEl @[9] {
send_off {x=1: y=4: };
wt_val=1;
};
TessEl @[10] {
send_off {x=0: y=5: };
wt_val=1;
};
TessEl @[11] {
send_off {x=1: y=5: };
wt_val=1;
};
};
};
TesselPrjnSpec @[7] {
name="Striatum_GPInt";
desc=;
unique{ };
children {
name=;
el_typ=TesselPrjnSpec;
el_def=0;
};
self_con=0;
init_wts=0;
recv_off {x=0: y=0: };
recv_n {x=-1: y=-1: };
recv_skip {x=1: y=1: };
recv_group {x=1: y=5: };
wrap=0;
send_scale {x=1: y=1: };
send_border {x=0: y=0: };
send_offs {
name=;
el_typ=TessEl;
el_def=0;
TessEl @[0] {
send_off {x=0: y=0: };
wt_val=1;
};
TessEl @[1] {
send_off {x=0: y=1: };
wt_val=1;
};
TessEl @[2] {
send_off {x=0: y=2: };
wt_val=1;
};
TessEl @[3] {
send_off {x=0: y=3: };
wt_val=1;
};
TessEl @[4] {
send_off {x=0: y=4: };
wt_val=1;
};
TessEl @[5] {
send_off {x=0: y=5: };
wt_val=1;
};
TessEl @[6] {
send_off {x=0: y=6: };
wt_val=1;
};
TessEl @[7] {
send_off {x=0: y=7: };
wt_val=1;
};
TessEl @[8] {
send_off {x=0: y=8: };
wt_val=1;
};
};
};
TesselPrjnSpec @[8] {
name="MotorCortex_NoGoStriatum";
desc=;
unique{ };
children {
name=;
el_typ=TesselPrjnSpec;
el_def=0;
};
self_con=0;
init_wts=0;
recv_off {x=2: y=0: };
recv_n {x=-1: y=-1: };
recv_skip {x=1: y=1: };
recv_group {x=1: y=9: };
wrap=1;
send_scale {x=1: y=1: };
send_border {x=0: y=0: };
send_offs {
name=;
el_typ=TessEl;
el_def=0;
TessEl @[0] {
send_off {x=0: y=0: };
wt_val=1;
};
TessEl @[1] {
send_off {x=0: y=0: };
wt_val=1;
};
TessEl @[2] {
send_off {x=0: y=2: };
wt_val=1;
};
TessEl @[3] {
send_off {x=0: y=3: };
wt_val=1;
};
};
};
OneToOnePrjnSpec @[9] {
name="OneToOne_2";
desc=;
unique{ self_con;};
children {
name=;
el_typ=OneToOnePrjnSpec;
el_def=0;
};
self_con=0;
init_wts=0;
n_conns=-1;
recv_start=0;
send_start=2;
};
};
BaseSpec_Group @.gp[1] {
name="Connections";
el_typ=LeabraUnitSpec;
el_def=0;
LeabraBiasSpec @[0] {
name="LearnBias";
desc=;
unique{ rnd;wt_limits;wt_scale;wt_scale_init;};
children {
name=;
el_typ=LeabraBiasSpec;
el_def=0;
LeabraBiasSpec @[0] {
name="FixedBias";
desc=;
unique{ lrate;wt_limits;wt_scale;wt_scale_init;};
children {
name=;
el_typ=LeabraBiasSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=0: var=0: par=1: };
wt_limits {type=NONE: min=-1: max=5: sym=0: };
inhib=0;
wt_scale {abs=1: rel=1: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0;
cur_lrate=0;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0: err=1: err_sb=1: };
savg_cor {cor=1: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
dwt_thresh=0.1;
};
};
rnd {name="": type=UNIFORM: mean=0: var=0: par=1: };
wt_limits {type=NONE: min=-1: max=5: sym=0: };
inhib=0;
wt_scale {abs=1: rel=1: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0.01;
cur_lrate=0.01;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0: err=1: err_sb=1: };
savg_cor {cor=1: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
dwt_thresh=0.1;
};
LeabraConSpec @[1] {
name="FixedFull";
desc=;
unique{ rnd;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=1: var=0: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=0: };
inhib=0;
wt_scale {abs=1: rel=3: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0;
cur_lrate=0;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=1: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
LeabraConSpec @[2] {
name="GPeGPiInhib";
desc=;
unique{ rnd;inhib;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
LeabraConSpec @[0] {
name="ThalInhib";
desc=;
unique{ wt_scale;wt_sig;savg_cor;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=1: var=0: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=1: };
inhib=1;
wt_scale {abs=1: rel=2: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0;
cur_lrate=0;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=0.4: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
LeabraConSpec @[1] {
name="Inhib_Learn";
desc=;
unique{ rnd;wt_scale;lrate;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=0.35: var=0.1: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=1: };
inhib=1;
wt_scale {abs=8: rel=2: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=1e-05;
cur_lrate=1e-05;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=1: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
};
rnd {name="": type=UNIFORM: mean=1: var=0: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=1: };
inhib=1;
wt_scale {abs=1.75: rel=1.5: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0;
cur_lrate=0;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=1: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
LeabraConSpec @[3] {
name="Fixed";
desc=;
unique{ rnd;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
LeabraConSpec @[0] {
name="STNcons";
desc=;
unique{ rnd;wt_scale;lrate;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=0.5: var=0.21: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=0: };
inhib=0;
wt_scale {abs=1: rel=0.7: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0.001;
cur_lrate=0.001;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=0.4: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
LeabraConSpec @[1] {
name="MotorCortex_Striatum";
desc=;
unique{ rnd;wt_limits;wt_scale;savg_cor;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=0.5: var=0.06: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=1: };
inhib=0;
wt_scale {abs=1: rel=1.5: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0.001;
cur_lrate=0.001;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=0: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
LeabraConSpec @[2] {
name="Motor_NoGo";
desc=;
unique{ rnd;wt_limits;wt_scale;savg_cor;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=0.5: var=0.06: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=1: };
inhib=0;
wt_scale {abs=1: rel=0.5: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0.001;
cur_lrate=0.001;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=0: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
LeabraConSpec @[3] {
name="Input_Motor_Prepotent_";
desc=;
unique{ rnd;wt_scale;lrate;lmix;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=0.35: var=0.005: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=0: };
inhib=0;
wt_scale {abs=3: rel=1: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=1e-06;
cur_lrate=1e-06;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=1: err=0: err_sb=1: };
savg_cor {cor=0.4: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
LeabraConSpec @[4] {
name="InputStriatum";
desc=;
unique{ rnd;wt_scale;lrate;savg_cor;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=0.5: var=0.25: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=0: };
inhib=0;
wt_scale {abs=1: rel=1: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0.001;
cur_lrate=0.001;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=1: thresh=0.001: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
LeabraConSpec @[5] {
name="STN_GPi";
desc=;
unique{ rnd;wt_scale;lrate;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=0.5: var=0.21: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=0: };
inhib=0;
wt_scale {abs=1: rel=0.55: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=1e-04;
cur_lrate=1e-04;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=0.4: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
LeabraConSpec @[6] {
name="Mtr_STNcons";
desc=;
unique{ rnd;wt_scale;lrate;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=0.65: var=0.2: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=0: };
inhib=0;
wt_scale {abs=1: rel=2: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0;
cur_lrate=0;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=0.4: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
};
rnd {name="": type=UNIFORM: mean=0.1: var=0.01: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=0: };
inhib=0;
wt_scale {abs=1: rel=1: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0.001;
cur_lrate=0.0075;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=0.4: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
LeabraConSpec @[4] {
name="Dopamine_D1_";
desc=;
unique{ rnd;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=0.5: var=0: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=0: };
inhib=0;
wt_scale {abs=0.5: rel=1: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0;
cur_lrate=0;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=0.4: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
LeabraConSpec @[5] {
name="SNc_Inhib_D2_";
desc=;
unique{ rnd;inhib;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=1: var=0: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=0: };
inhib=1;
wt_scale {abs=0.5: rel=0.75: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0;
cur_lrate=0;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=0.4: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
LeabraConSpec @[6] {
name="Inhib";
desc=;
unique{ rnd;inhib;};
children {
name=;
el_typ=LeabraConSpec;
el_def=0;
};
rnd {name="": type=UNIFORM: mean=0.7: var=0: par=1: };
wt_limits {type=MIN_MAX: min=0: max=1: sym=1: };
inhib=1;
wt_scale {abs=3: rel=2.25: };
wt_scale_init {init=0: abs=1: rel=1: };
wt_sig {gain=6: off=1.25: };
lrate=0;
cur_lrate=0;
lrs_value=EPOCH;
lrate_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=0;
cur_val=0;
};
lmix {hebb=0.01: err=0.99: err_sb=1: };
savg_cor {cor=1: thresh=0.01: norm_con_n=0: };
rel_net_adapt {
on=0;
trg_fm_input=0.85;
trg_fm_output=0.15;
trg_lateral=0;
trg_sum=1;
tol_lg=0.05;
tol_sm=0.2;
rel_lrate=0.1;
};
};
};
BaseSpec_Group @.gp[2] {
name="Units";
el_typ=LeabraUnitSpec;
el_def=0;
LeabraUnitSpec @[0] {
name="FixedBiasUnitSpec";
desc=;
unique{ opt_thresh;};
children {
name=;
el_typ=LeabraUnitSpec;
el_def=0;
LeabraUnitSpec @[0] {
name="GPExt_UnitSpec";
desc=;
unique{ bias_spec;act;opt_thresh;v_m_init;dt;g_bar;e_rev;};
children {
name=;
el_typ=LeabraUnitSpec;
el_def=0;
};
act_range {min=0: max=1: range=1: scale=1: };
bias_con_type=LeabraCon;
bias_spec {type=LeabraBiasSpec: spec=.projects[0].networks[0].specs.gp[1][0].children[0]$147$: };
sse_tol=0.5;
act_fun=NOISY_XX1;
act {thr=0.25: gain=600: nvar=0.005: avg_dt=0.005: i_thr=STD: };
spike {decay=0.05: v_m_r=0: eq_gain=10: eq_dt=0.02: hard_gain=0.4: };
depress {p_spike=P_NXX1: rec=0.2: asymp_act=0.5: depl=0.2105263: max_amp=2: };
opt_thresh {send=0.1: delta=0.005: learn=0: updt_wts=0: phase_dif=0: };
clamp_range {min=0: max=0.95: range=0.95: scale=1.052632: };
vm_range {min=0: max=1: range=1: scale=1: };
v_m_init {name="": type=UNIFORM: mean=0.26: var=0: par=1: };
dt {vm=0.1: net=0.7: d_vm_max=0.025: vm_eq_cyc=0: vm_eq_dt=1: };
g_bar {e=1: l=1: i=2.5: h=0.1: a=0.5: };
e_rev {e=1: l=0.255: i=0.15: h=1: a=0: };
hyst {on=0: b_inc_dt=0.05: b_dec_dt=0.05: a_thr=0.8: d_thr=0.7: g_dt=0.1: init=1: trl=0: };
acc {on=0: b_inc_dt=0.01: b_dec_dt=0.01: a_thr=0.5: d_thr=0.1: g_dt=0.1: init=0: trl=0: };
act_reg {on=0: min=0.001: max=0.35: wt_dt=0.2: };
maxda {val=INET_DA: inet_scale=1: lay_avg_thr=0.01: };
noise_type=NO_NOISE;
noise {name="": type=GAUSSIAN: mean=0: var=0.001: par=1: };
noise_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=1;
cur_val=0;
};
};
LeabraUnitSpec @[1] {
name="OutputUnitSpec";
desc=;
unique{ bias_spec;act;opt_thresh;g_bar;};
children {
name=;
el_typ=LeabraUnitSpec;
el_def=0;
};
act_range {min=0: max=1: range=1: scale=1: };
bias_con_type=LeabraCon;
bias_spec {type=LeabraBiasSpec: spec=$147$: };
sse_tol=0.5;
act_fun=NOISY_XX1;
act {thr=0.2: gain=600: nvar=0.005: avg_dt=0.005: i_thr=STD: };
spike {decay=0.05: v_m_r=0: eq_gain=10: eq_dt=0.02: hard_gain=0.4: };
depress {p_spike=P_NXX1: rec=0.2: asymp_act=0.5: depl=0.2105263: max_amp=2: };
opt_thresh {send=0.1: delta=0.005: learn=0: updt_wts=0: phase_dif=0: };
clamp_range {min=0: max=0.95: range=0.95: scale=1.052632: };
vm_range {min=0: max=1: range=1: scale=1: };
v_m_init {name="": type=UNIFORM: mean=0.15: var=0: par=1: };
dt {vm=0.1: net=0.7: d_vm_max=0.025: vm_eq_cyc=0: vm_eq_dt=1: };
g_bar {e=1: l=1: i=1: h=0.1: a=0.5: };
e_rev {e=1: l=0.15: i=0.15: h=1: a=0: };
hyst {on=0: b_inc_dt=0.05: b_dec_dt=0.05: a_thr=0.8: d_thr=0.7: g_dt=0.1: init=1: trl=0: };
acc {on=0: b_inc_dt=0.01: b_dec_dt=0.01: a_thr=0.5: d_thr=0.1: g_dt=0.1: init=0: trl=0: };
act_reg {on=0: min=0.001: max=0.35: wt_dt=0.2: };
maxda {val=INET_DA: inet_scale=1: lay_avg_thr=0.01: };
noise_type=NO_NOISE;
noise {name="": type=GAUSSIAN: mean=0: var=0.001: par=1: };
noise_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=1;
cur_val=0;
};
};
LeabraUnitSpec @[2] {
name="Thalamus";
desc=;
unique{ bias_spec;opt_thresh;dt;g_bar;};
children {
name=;
el_typ=LeabraUnitSpec;
el_def=0;
};
act_range {min=0: max=1: range=1: scale=1: };
bias_con_type=LeabraCon;
bias_spec {type=LeabraBiasSpec: spec=$147$: };
sse_tol=0.5;
act_fun=NOISY_XX1;
act {thr=0.25: gain=600: nvar=0.005: avg_dt=0.005: i_thr=STD: };
spike {decay=0.05: v_m_r=0: eq_gain=10: eq_dt=0.02: hard_gain=0.4: };
depress {p_spike=P_NXX1: rec=0.2: asymp_act=0.5: depl=0.2105263: max_amp=2: };
opt_thresh {send=0.1: delta=0.005: learn=0: updt_wts=0: phase_dif=0: };
clamp_range {min=0: max=0.95: range=0.95: scale=1.052632: };
vm_range {min=0: max=1: range=1: scale=1: };
v_m_init {name="": type=UNIFORM: mean=0.15: var=0: par=1: };
dt {vm=0.05: net=0.4: d_vm_max=0.025: vm_eq_cyc=0: vm_eq_dt=1: };
g_bar {e=0.5: l=0.07: i=1.7: h=0.2: a=0.5: };
e_rev {e=1: l=0.15: i=0.15: h=1: a=0: };
hyst {on=0: b_inc_dt=0.05: b_dec_dt=0.05: a_thr=0.8: d_thr=0.7: g_dt=0.1: init=1: trl=0: };
acc {on=0: b_inc_dt=0.01: b_dec_dt=0.01: a_thr=0.5: d_thr=0.1: g_dt=0.1: init=0: trl=0: };
act_reg {on=0: min=0.001: max=0.35: wt_dt=0.2: };
maxda {val=INET_DA: inet_scale=1: lay_avg_thr=0.01: };
noise_type=NO_NOISE;
noise {name="": type=GAUSSIAN: mean=0: var=0.001: par=1: };
noise_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=1;
cur_val=0;
};
};
LeabraUnitSpec @[3] {
name="LearnBiasUnitSpec";
desc=;
unique{ bias_spec;};
children {
name=;
el_typ=LeabraUnitSpec;
el_def=0;
LeabraUnitSpec @[0] {
name="matrisom_unitspec";
desc=;
unique{ bias_spec;act;opt_thresh;g_bar;act_reg;noise_type;noise;dt;};
children {
name=;
el_typ=LeabraUnitSpec;
el_def=0;
};
act_range {min=0: max=1: range=1: scale=1: };
bias_con_type=LeabraCon;
bias_spec {type=LeabraBiasSpec: spec=$147$: };
sse_tol=0.5;
act_fun=NOISY_XX1;
act {thr=0.26: gain=2500: nvar=0.005: avg_dt=0.005: i_thr=STD: };
spike {decay=0.05: v_m_r=0: eq_gain=10: eq_dt=0.02: hard_gain=0.4: };
depress {p_spike=P_NXX1: rec=0.2: asymp_act=0.5: depl=0.2105263: max_amp=2: };
opt_thresh {send=0.1: delta=0.005: learn=0: updt_wts=0: phase_dif=0: };
clamp_range {min=0: max=0.95: range=0.95: scale=1.052632: };
vm_range {min=0: max=1: range=1: scale=1: };
v_m_init {name="": type=UNIFORM: mean=0.15: var=0: par=1: };
dt {vm=0.05: net=0.5: d_vm_max=0.025: vm_eq_cyc=0: vm_eq_dt=1: };
g_bar {e=1: l=1: i=1: h=1.2: a=0.5: };
e_rev {e=1: l=0.15: i=0.15: h=1: a=0: };
hyst {on=0: b_inc_dt=0.05: b_dec_dt=0.05: a_thr=0.8: d_thr=0.7: g_dt=0.1: init=1: trl=0: };
acc {on=0: b_inc_dt=0.01: b_dec_dt=0.01: a_thr=0.5: d_thr=0.1: g_dt=0.1: init=0: trl=0: };
act_reg {on=1: min=0.001: max=0.35: wt_dt=0.1: };
maxda {val=INET_DA: inet_scale=1: lay_avg_thr=0.01: };
noise_type=VM_NOISE;
noise {name="": type=GAUSSIAN: mean=0.001: var=0: par=1: };
noise_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=1;
cur_val=0;
};
};
LeabraUnitSpec @[1] {
name="Motor_Cortex_unitspec";
desc=;
unique{ bias_spec;opt_thresh;dt;acc;noise_type;noise;noise_sched;};
children {
name=;
el_typ=LeabraUnitSpec;
el_def=0;
};
act_range {min=0: max=1: range=1: scale=1: };
bias_con_type=LeabraCon;
bias_spec {type=LeabraBiasSpec: spec=$147$: };
sse_tol=0.5;
act_fun=NOISY_XX1;
act {thr=0.25: gain=600: nvar=0.005: avg_dt=0.005: i_thr=STD: };
spike {decay=0.05: v_m_r=0: eq_gain=10: eq_dt=0.02: hard_gain=0.4: };
depress {p_spike=P_NXX1: rec=0.2: asymp_act=0.5: depl=0.2105263: max_amp=2: };
opt_thresh {send=0.1: delta=0.005: learn=0: updt_wts=0: phase_dif=0: };
clamp_range {min=0: max=0.95: range=0.95: scale=1.052632: };
vm_range {min=0: max=1: range=1: scale=1: };
v_m_init {name="": type=UNIFORM: mean=0.15: var=0: par=1: };
dt {vm=0.05: net=0.7: d_vm_max=0.025: vm_eq_cyc=0: vm_eq_dt=1: };
g_bar {e=1: l=0.1: i=1: h=1.2: a=0.5: };
e_rev {e=1: l=0.15: i=0.15: h=1: a=0: };
hyst {on=0: b_inc_dt=0.05: b_dec_dt=0.05: a_thr=0.8: d_thr=0.7: g_dt=0.1: init=1: trl=0: };
acc {on=0: b_inc_dt=0.005: b_dec_dt=0.01: a_thr=0.25: d_thr=0.1: g_dt=0.1: init=1: trl=0: };
act_reg {on=0: min=0.001: max=0.35: wt_dt=0.2: };
maxda {val=INET_DA: inet_scale=1: lay_avg_thr=0.01: };
noise_type=VM_NOISE;
noise {name="": type=GAUSSIAN: mean=0.0015: var=0.0015: par=1: };
noise_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=1;
cur_val=0;
SchedItem @[0] {
start_ctr=0;
start_val=1;
duration=25;
step=0;
};
SchedItem @[1] {
start_ctr=25;
start_val=1;
duration=55;
step=-0.009090909;
};
SchedItem @[2] {
start_ctr=80;
start_val=0.5;
duration=20;
step=-0.015;
};
SchedItem @[3] {
start_ctr=100;
start_val=0.2;
duration=1;
step=1;
};
};
};
LeabraUnitSpec @[2] {
name="STN_unitspec";
desc=;
unique{ bias_spec;act;opt_thresh;v_m_init;dt;g_bar;e_rev;noise_type;noise;};
children {
name=;
el_typ=LeabraUnitSpec;
el_def=0;
};
act_range {min=0: max=1: range=1: scale=1: };
bias_con_type=LeabraCon;
bias_spec {type=LeabraBiasSpec: spec=$147$: };
sse_tol=0.5;
act_fun=NOISY_XX1;
act {thr=0.25: gain=600: nvar=0.005: avg_dt=0.005: i_thr=STD: };
spike {decay=0.05: v_m_r=0: eq_gain=10: eq_dt=0.02: hard_gain=0.4: };
depress {p_spike=P_NXX1: rec=0.2: asymp_act=0.5: depl=0.2105263: max_amp=2: };
opt_thresh {send=0.1: delta=0.005: learn=0: updt_wts=0: phase_dif=0: };
clamp_range {min=0: max=0.95: range=0.95: scale=1.052632: };
vm_range {min=0: max=1: range=1: scale=1: };
v_m_init {name="": type=UNIFORM: mean=0.25: var=0: par=1: };
dt {vm=0.045: net=0.17: d_vm_max=0.025: vm_eq_cyc=0: vm_eq_dt=1: };
g_bar {e=1: l=1: i=1: h=0.1: a=0.5: };
e_rev {e=1: l=0.2: i=0.15: h=1: a=0: };
hyst {on=0: b_inc_dt=0.05: b_dec_dt=0.05: a_thr=0.8: d_thr=0.7: g_dt=0.1: init=1: trl=0: };
acc {on=0: b_inc_dt=0.01: b_dec_dt=0.01: a_thr=0.5: d_thr=0.1: g_dt=0.1: init=0: trl=0: };
act_reg {on=0: min=0.001: max=0.35: wt_dt=0.2: };
maxda {val=INET_DA: inet_scale=1: lay_avg_thr=0.01: };
noise_type=NO_NOISE;
noise {name="": type=GAUSSIAN: mean=0.0015: var=0.001: par=1: };
noise_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=1;
cur_val=0;
};
};
};
act_range {min=0: max=1: range=1: scale=1: };
bias_con_type=LeabraCon;
bias_spec {type=LeabraBiasSpec: spec=.projects[0].networks[0].specs.gp[1][0]$148$: };
sse_tol=0.5;
act_fun=NOISY_XX1;
act {thr=0.25: gain=600: nvar=0.005: avg_dt=0.005: i_thr=STD: };
spike {decay=0.05: v_m_r=0: eq_gain=10: eq_dt=0.02: hard_gain=0.4: };
depress {p_spike=P_NXX1: rec=0.2: asymp_act=0.5: depl=0.2105263: max_amp=2: };
opt_thresh {send=0.1: delta=0.005: learn=0: updt_wts=0: phase_dif=0: };
clamp_range {min=0: max=0.95: range=0.95: scale=1.052632: };
vm_range {min=0: max=1: range=1: scale=1: };
v_m_init {name="": type=UNIFORM: mean=0.15: var=0: par=1: };
dt {vm=0.1: net=0.7: d_vm_max=0.025: vm_eq_cyc=0: vm_eq_dt=1: };
g_bar {e=1: l=0.1: i=1: h=1.2: a=0.5: };
e_rev {e=1: l=0.15: i=0.15: h=1: a=0: };
hyst {on=0: b_inc_dt=0.05: b_dec_dt=0.05: a_thr=0.8: d_thr=0.7: g_dt=0.1: init=1: trl=0: };
acc {on=0: b_inc_dt=0.01: b_dec_dt=0.01: a_thr=0.5: d_thr=0.1: g_dt=0.1: init=0: trl=0: };
act_reg {on=0: min=0.001: max=0.35: wt_dt=0.2: };
maxda {val=INET_DA: inet_scale=1: lay_avg_thr=0.01: };
noise_type=NO_NOISE;
noise {name="": type=GAUSSIAN: mean=0: var=0.001: par=1: };
noise_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=1;
cur_val=0;
};
};
LeabraUnitSpec @[4] {
name="GPInt_UnitSpec";
desc=;
unique{ bias_spec;opt_thresh;v_m_init;dt;g_bar;e_rev;};
children {
name=;
el_typ=LeabraUnitSpec;
el_def=0;
};
act_range {min=0: max=1: range=1: scale=1: };
bias_con_type=LeabraCon;
bias_spec {type=LeabraBiasSpec: spec=$147$: };
sse_tol=0.5;
act_fun=NOISY_XX1;
act {thr=0.25: gain=600: nvar=0.005: avg_dt=0.005: i_thr=STD: };
spike {decay=0.05: v_m_r=0: eq_gain=10: eq_dt=0.02: hard_gain=0.4: };
depress {p_spike=P_NXX1: rec=0.2: asymp_act=0.5: depl=0.2105263: max_amp=2: };
opt_thresh {send=0.1: delta=0.005: learn=0: updt_wts=0: phase_dif=0: };
clamp_range {min=0: max=0.95: range=0.95: scale=1.052632: };
vm_range {min=0: max=1: range=1: scale=1: };
v_m_init {name="": type=UNIFORM: mean=0.26: var=0: par=1: };
dt {vm=0.2: net=0.7: d_vm_max=0.025: vm_eq_cyc=0: vm_eq_dt=1: };
g_bar {e=1: l=3: i=1: h=0.1: a=0.5: };
e_rev {e=1: l=0.275: i=0.15: h=1: a=0: };
hyst {on=0: b_inc_dt=0.05: b_dec_dt=0.05: a_thr=0.8: d_thr=0.7: g_dt=0.1: init=1: trl=0: };
acc {on=0: b_inc_dt=0.01: b_dec_dt=0.01: a_thr=0.5: d_thr=0.1: g_dt=0.1: init=0: trl=0: };
act_reg {on=0: min=0.001: max=0.35: wt_dt=0.2: };
maxda {val=INET_DA: inet_scale=1: lay_avg_thr=0.01: };
noise_type=NO_NOISE;
noise {name="": type=GAUSSIAN: mean=0: var=0.001: par=1: };
noise_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=1;
cur_val=0;
};
};
};
act_range {min=0: max=1: range=1: scale=1: };
bias_con_type=LeabraCon;
bias_spec {type=LeabraBiasSpec: spec=$147$: };
sse_tol=0.5;
act_fun=NOISY_XX1;
act {thr=0.25: gain=600: nvar=0.005: avg_dt=0.005: i_thr=STD: };
spike {decay=0.05: v_m_r=0: eq_gain=10: eq_dt=0.02: hard_gain=0.4: };
depress {p_spike=P_NXX1: rec=0.2: asymp_act=0.5: depl=0.2105263: max_amp=2: };
opt_thresh {send=0.1: delta=0.005: learn=0: updt_wts=0: phase_dif=0: };
clamp_range {min=0: max=0.95: range=0.95: scale=1.052632: };
vm_range {min=0: max=1: range=1: scale=1: };
v_m_init {name="": type=UNIFORM: mean=0.15: var=0: par=1: };
dt {vm=0.1: net=0.7: d_vm_max=0.025: vm_eq_cyc=0: vm_eq_dt=1: };
g_bar {e=1: l=0.1: i=1: h=1.2: a=0.5: };
e_rev {e=1: l=0.15: i=0.15: h=1: a=0: };
hyst {on=0: b_inc_dt=0.05: b_dec_dt=0.05: a_thr=0.8: d_thr=0.7: g_dt=0.1: init=1: trl=0: };
acc {on=0: b_inc_dt=0.01: b_dec_dt=0.01: a_thr=0.5: d_thr=0.1: g_dt=0.1: init=0: trl=0: };
act_reg {on=0: min=0.001: max=0.35: wt_dt=0.2: };
maxda {val=INET_DA: inet_scale=1: lay_avg_thr=0.01: };
noise_type=NO_NOISE;
noise {name="": type=GAUSSIAN: mean=0: var=0.001: par=1: };
noise_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=1;
cur_val=0;
};
};
LeabraUnitSpec @[1] {
name="SNc_UnitSpec";
desc=;
unique{ opt_thresh;};
children {
name=;
el_typ=LeabraUnitSpec;
el_def=0;
};
act_range {min=0: max=1: range=1: scale=1: };
bias_con_type=LeabraCon;
bias_spec {type=LeabraBiasSpec: spec=$147$: };
sse_tol=0.5;
act_fun=NOISY_XX1;
act {thr=0.25: gain=100: nvar=0.005: avg_dt=0.005: i_thr=STD: };
spike {decay=0.05: v_m_r=0: eq_gain=10: eq_dt=0.02: hard_gain=0.4: };
depress {p_spike=P_NXX1: rec=0.2: asymp_act=0.5: depl=0.2105263: max_amp=2: };
opt_thresh {send=0.1: delta=0.005: learn=0: updt_wts=0: phase_dif=0: };
clamp_range {min=0: max=0.95: range=0.95: scale=1.052632: };
vm_range {min=0: max=1: range=1: scale=1: };
v_m_init {name="": type=UNIFORM: mean=0.15: var=0: par=1: };
dt {vm=0.95: net=1: d_vm_max=0.025: vm_eq_cyc=0: vm_eq_dt=1: };
g_bar {e=1: l=0.1: i=1: h=1.2: a=0.5: };
e_rev {e=1: l=0.15: i=0.15: h=1: a=0: };
hyst {on=0: b_inc_dt=0.05: b_dec_dt=0.05: a_thr=0.8: d_thr=0.7: g_dt=0.1: init=1: trl=0: };
acc {on=0: b_inc_dt=0.01: b_dec_dt=0.01: a_thr=0.5: d_thr=0.1: g_dt=0.1: init=0: trl=0: };
act_reg {on=0: min=0.001: max=0.35: wt_dt=0.2: };
maxda {val=INET_DA: inet_scale=1: lay_avg_thr=0.01: };
noise_type=NETIN_NOISE;
noise {name="": type=GAUSSIAN: mean=0.0015: var=0.002: par=1: };
noise_sched {
name=;
el_typ=SchedItem;
el_def=0;
last_ctr=-1;
default_val=1;
interpolate=1;
cur_val=0;
};
};
};
BaseSpec_Group @.gp[3] {
name="LayerSpecs";
el_typ=LeabraUnitSpec;
el_def=0;
LeabraLayerSpec @[0] {
name="LayerSpec_0";
desc=;
unique{ kwta;};
children {
name=;
el_typ=LeabraLayerSpec;
el_def=0;
LeabraLayerSpec @[0] {
name="Matrisome_layerspec";
desc=;
unique{ kwta;gp_kwta;inhib_group;compute_i;i_kwta_pt;clamp;decay;inhib;};
children {
name=;
el_typ=LeabraLayerSpec;
el_def=0;
};
inhib_group=ENTIRE_LAYER;
inhib {
type=KWTA_INHIB;
kwta_pt=0.5;
min_i=0;
comp_thr=0.5;
comp_gain=2;
gp_pt=0.2;
};
kwta {k_from=USE_K: k=3: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
gp_kwta {k_from=USE_K: k=2: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
tie_brk {on=0: k_thr=1: diff_thr=0.2: };
adapt_i {type=NONE: tol=0.05: p_dt=0: mx_d=0.2: l=0.2: a_dt=0.005: };
clamp {hard=1: gain=0.5: d_gain=0: };
decay {event=1: phase=0: phase2=0: clamp_phase2=0: };
net_rescale {on=0: max_net=0.8: net_extra=0.2: };
abs_net_adapt {
on=0;
trg_net=0.5;
tol=0.1;
abs_lrate=0.1;
};
};
LeabraLayerSpec @[1] {
name="GP_layerspec";
desc=;
unique{ kwta;compute_i;i_kwta_pt;clamp;inhib;};
children {
name=;
el_typ=LeabraLayerSpec;
el_def=0;
};
inhib_group=ENTIRE_LAYER;
inhib {
type=UNIT_INHIB;
kwta_pt=0.5;
min_i=0;
comp_thr=0.5;
comp_gain=2;
gp_pt=0.2;
};
kwta {k_from=USE_K: k=1: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
gp_kwta {k_from=USE_PCT: k=12: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
tie_brk {on=0: k_thr=1: diff_thr=0.2: };
adapt_i {type=NONE: tol=0.05: p_dt=0: mx_d=0.2: l=0.2: a_dt=0.005: };
clamp {hard=0: gain=0.5: d_gain=0: };
decay {event=1: phase=1: phase2=0: clamp_phase2=0: };
net_rescale {on=0: max_net=0.8: net_extra=0.2: };
abs_net_adapt {
on=0;
trg_net=0.5;
tol=0.1;
abs_lrate=0.1;
};
};
LeabraLayerSpec @[2] {
name="Thalamus_layerspec";
desc=;
unique{ kwta;compute_i;decay;inhib;};
children {
name=;
el_typ=LeabraLayerSpec;
el_def=0;
};
inhib_group=ENTIRE_LAYER;
inhib {
type=UNIT_INHIB;
kwta_pt=0.6;
min_i=0;
comp_thr=0.5;
comp_gain=2;
gp_pt=0.2;
};
kwta {k_from=USE_K: k=1: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
gp_kwta {k_from=USE_PCT: k=12: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
tie_brk {on=0: k_thr=1: diff_thr=0.2: };
adapt_i {type=NONE: tol=0.05: p_dt=0: mx_d=0.2: l=0.2: a_dt=0.005: };
clamp {hard=1: gain=0.5: d_gain=0: };
decay {event=1: phase=0: phase2=0: clamp_phase2=0: };
net_rescale {on=0: max_net=0.8: net_extra=0.2: };
abs_net_adapt {
on=0;
trg_net=0.5;
tol=0.1;
abs_lrate=0.1;
};
};
LeabraLayerSpec @[3] {
name="Output_layerspec";
desc=;
unique{ kwta;inhib_group;compute_i;i_kwta_pt;inhib;};
children {
name=;
el_typ=LeabraLayerSpec;
el_def=0;
};
inhib_group=ENTIRE_LAYER;
inhib {
type=KWTA_INHIB;
kwta_pt=0;
min_i=0;
comp_thr=0.5;
comp_gain=2;
gp_pt=0.2;
};
kwta {k_from=USE_K: k=1: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
gp_kwta {k_from=USE_PCT: k=12: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
tie_brk {on=0: k_thr=1: diff_thr=0.2: };
adapt_i {type=NONE: tol=0.05: p_dt=0: mx_d=0.2: l=0.2: a_dt=0.005: };
clamp {hard=1: gain=0.5: d_gain=0: };
decay {event=1: phase=1: phase2=0: clamp_phase2=0: };
net_rescale {on=0: max_net=0.8: net_extra=0.2: };
abs_net_adapt {
on=0;
trg_net=0.5;
tol=0.1;
abs_lrate=0.1;
};
};
LeabraLayerSpec @[4] {
name="PFC_Out_layerspec";
desc=;
unique{ kwta;gp_kwta;inhib_group;compute_i;i_kwta_pt;inhib;};
children {
name=;
el_typ=LeabraLayerSpec;
el_def=0;
};
inhib_group=LAY_AND_GPS;
inhib {
type=KWTA_AVG_INHIB;
kwta_pt=0.5;
min_i=0;
comp_thr=0.5;
comp_gain=2;
gp_pt=0.2;
};
kwta {k_from=USE_K: k=2: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
gp_kwta {k_from=USE_K: k=1: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
tie_brk {on=0: k_thr=1: diff_thr=0.2: };
adapt_i {type=NONE: tol=0.05: p_dt=0: mx_d=0.2: l=0.2: a_dt=0.005: };
clamp {hard=1: gain=0.5: d_gain=0: };
decay {event=1: phase=1: phase2=0: clamp_phase2=0: };
net_rescale {on=0: max_net=0.8: net_extra=0.2: };
abs_net_adapt {
on=0;
trg_net=0.5;
tol=0.1;
abs_lrate=0.1;
};
};
LeabraLayerSpec @[5] {
name="InputLayer";
desc=;
unique{ kwta;compute_i;i_kwta_pt;clamp;inhib;};
children {
name=;
el_typ=LeabraLayerSpec;
el_def=0;
};
inhib_group=ENTIRE_LAYER;
inhib {
type=KWTA_INHIB;
kwta_pt=0.25;
min_i=0;
comp_thr=0.5;
comp_gain=2;
gp_pt=0.2;
};
kwta {k_from=USE_K: k=1: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
gp_kwta {k_from=USE_PCT: k=12: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
tie_brk {on=0: k_thr=1: diff_thr=0.2: };
adapt_i {type=NONE: tol=0.05: p_dt=0: mx_d=0.2: l=0.2: a_dt=0.005: };
clamp {hard=1: gain=0.5: d_gain=0: };
decay {event=1: phase=1: phase2=0: clamp_phase2=0: };
net_rescale {on=0: max_net=0.8: net_extra=0.2: };
abs_net_adapt {
on=0;
trg_net=0.5;
tol=0.1;
abs_lrate=0.1;
};
};
LeabraLayerSpec @[6] {
name="SNc_layerspec";
desc=;
unique{ kwta;compute_i;clamp;inhib;decay;};
children {
name=;
el_typ=LeabraLayerSpec;
el_def=0;
};
inhib_group=ENTIRE_LAYER;
inhib {
type=UNIT_INHIB;
kwta_pt=0.6;
min_i=0;
comp_thr=0.5;
comp_gain=2;
gp_pt=0.2;
};
kwta {k_from=USE_K: k=1: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
gp_kwta {k_from=USE_PCT: k=12: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
tie_brk {on=0: k_thr=1: diff_thr=0.2: };
adapt_i {type=NONE: tol=0.05: p_dt=0: mx_d=0.2: l=0.2: a_dt=0.005: };
clamp {hard=0: gain=0.5: d_gain=0: };
decay {event=1: phase=0: phase2=0: clamp_phase2=0: };
net_rescale {on=0: max_net=0.8: net_extra=0.2: };
abs_net_adapt {
on=0;
trg_net=0.5;
tol=0.1;
abs_lrate=0.1;
};
};
};
inhib_group=ENTIRE_LAYER;
inhib {
type=KWTA_AVG_INHIB;
kwta_pt=0.6;
min_i=0;
comp_thr=0.5;
comp_gain=2;
gp_pt=0.2;
};
kwta {k_from=USE_K: k=3: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
gp_kwta {k_from=USE_PCT: k=12: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
tie_brk {on=0: k_thr=1: diff_thr=0.2: };
adapt_i {type=NONE: tol=0.05: p_dt=0: mx_d=0.2: l=0.2: a_dt=0.005: };
clamp {hard=1: gain=0.5: d_gain=0: };
decay {event=1: phase=1: phase2=0: clamp_phase2=0: };
net_rescale {on=0: max_net=0.8: net_extra=0.2: };
abs_net_adapt {
on=0;
trg_net=0.5;
tol=0.1;
abs_lrate=0.1;
};
};
LeabraLayerSpec @[1] {
name="NoDecayLayers";
desc=;
unique{ };
children {
name=;
el_typ=LeabraLayerSpec;
el_def=0;
LeabraLayerSpec @[0] {
name="STN";
desc=;
unique{ kwta;gp_kwta;inhib_group;compute_i;i_kwta_pt;inhib;};
children {
name=;
el_typ=LeabraLayerSpec;
el_def=0;
};
inhib_group=ENTIRE_LAYER;
inhib {
type=UNIT_INHIB;
kwta_pt=0.5;
min_i=0;
comp_thr=0.5;
comp_gain=2;
gp_pt=0.2;
};
kwta {k_from=USE_K: k=2: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
gp_kwta {k_from=USE_K: k=1: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
tie_brk {on=0: k_thr=1: diff_thr=0.2: };
adapt_i {type=NONE: tol=0.05: p_dt=0: mx_d=0.2: l=0.2: a_dt=0.005: };
clamp {hard=1: gain=0.5: d_gain=0: };
decay {event=0: phase=0: phase2=0: clamp_phase2=0: };
net_rescale {on=0: max_net=0.8: net_extra=0.2: };
abs_net_adapt {
on=0;
trg_net=0.5;
tol=0.1;
abs_lrate=0.1;
};
};
LeabraLayerSpec @[1] {
name="PFCIn_layerspec";
desc=;
unique{ kwta;gp_kwta;inhib_group;compute_i;i_kwta_pt;inhib;};
children {
name=;
el_typ=LeabraLayerSpec;
el_def=0;
};
inhib_group=LAY_AND_GPS;
inhib {
type=KWTA_AVG_INHIB;
kwta_pt=0.6;
min_i=0;
comp_thr=0.5;
comp_gain=2;
gp_pt=0.2;
};
kwta {k_from=USE_K: k=5: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
gp_kwta {k_from=USE_K: k=1: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
tie_brk {on=0: k_thr=1: diff_thr=0.2: };
adapt_i {type=NONE: tol=0.05: p_dt=0: mx_d=0.2: l=0.2: a_dt=0.005: };
clamp {hard=1: gain=0.5: d_gain=0: };
decay {event=0: phase=0: phase2=0: clamp_phase2=0: };
net_rescale {on=0: max_net=0.8: net_extra=0.2: };
abs_net_adapt {
on=0;
trg_net=0.5;
tol=0.1;
abs_lrate=0.1;
};
};
};
inhib_group=ENTIRE_LAYER;
inhib {
type=KWTA_INHIB;
kwta_pt=0.25;
min_i=0;
comp_thr=0.5;
comp_gain=2;
gp_pt=0.2;
};
kwta {k_from=USE_K: k=1: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
gp_kwta {k_from=USE_PCT: k=12: pct=0.25: pat_q=0.5: diff_act_pct=0: act_pct=0.1: gp_i=0: gp_g=0.5: };
tie_brk {on=0: k_thr=1: diff_thr=0.2: };
adapt_i {type=NONE: tol=0.05: p_dt=0: mx_d=0.2: l=0.2: a_dt=0.005: };
clamp {hard=1: gain=0.5: d_gain=0: };
decay {event=0: phase=0: phase2=0: clamp_phase2=0: };
net_rescale {on=0: max_net=0.8: net_extra=0.2: };
abs_net_adapt {
on=0;
trg_net=0.5;
tol=0.1;
abs_lrate=0.1;
};
};
};
};
layers {
name=;
el_typ=LeabraLayer;
el_def=0;
pos {x=0: y=0: z=0: };
LeabraLayer @[0] {
name="Input";
flags=;
layer_type=INPUT;
pos {x=1: y=0: z=2: };
un_geom {x=5: y=5: n_not_xy=0: n=25: };
unit_groups=0;
gp_geom {x=0: y=0: n_not_xy=0: n=0: };
gp_spc {x=0: y=0: };
act_geom {x=5: y=5: n_not_xy=0: n=25: };
projections {
name=;
el_typ=LeabraPrjn;
el_def=0;
};
send_prjns {
name=;
el_typ=LeabraPrjn;
el_def=0;
Projection_Group @. = [0] = LeabraPrjn .projects[0].networks[0].layers[1].projections[0];
Projection_Group @. = [1] = LeabraPrjn .projects[0].networks[0].layers[6].projections[1];
};
units {
name=;
el_typ=LeabraUnit;
el_def=0;
pos {x=0: y=0: z=0: };
unique_geom=0;
geom {x=5: y=5: n_not_xy=0: n=25: };
units_lesioned=0;
output_name=;
};
unit_spec {type=LeabraUnitSpec: spec=.projects[0].networks[0].specs.gp[2][0]$149$: };
ext_flag=EXT;
dmem_dist=DMEM_DIST_DEFAULT;
dist {
fm_input=-1;
fm_output=-1;
};
output_name=;
sse=0;
icon_value=0;
netin {avg=0: max=0: max_i=-1: };
i_thrs {avg=0: max=0: max_i=-1: };
acts {avg=0.38: max=0.95: max_i=0: };
acts_p {avg=0.38: max=0.95: max_i=1: };
acts_m {avg=0.38: max=0.95: max_i=1: };
phase_dif_ratio=1;
kwta {k=1: pct=0.04: pct_c=0.96: adth_k=1: k_ithr=-0.1: k1_ithr=-0.1: ithr_r=0: ithr_diff=-0: tie_brk=0: };
i_val {kwta=0: g_i=0.25: gp_g_i=0: g_i_orig=0.25: };
un_g_i {avg=0: max=0: max_i=-1: };
adapt_i {avg_avg=0.04: i_kwta_pt=0.25: g_bar_i=1: g_bar_l=0.1: };
spec {type=LeabraLayerSpec: spec=.projects[0].networks[0].specs.gp[3][0].children[5]$150$: };
stm_gain=0.5;
hard_clamped=1;
dav=0;
net_rescale=1;
avg_netin {avg=0: max=0: max_i=-1: };
avg_netin_sum {avg=0: max=0: max_i=-1: };
avg_netin_n=0;
da_updt=0;
misc_iar{ };
};
LeabraLayer @[1] {
name="Striatum";
flags=;
layer_type=HIDDEN;
pos {x=1: y=0: z=1: };
un_geom {x=4: y=9: n_not_xy=0: n=36: };
unit_groups=0;
gp_geom {x=2: y=2: n_not_xy=0: n=4: };
gp_spc {x=0: y=0: };
act_geom {x=4: y=9: n_not_xy=0: n=36: };
projections {
name=;
el_typ=LeabraPrjn;
el_def=0;
LeabraPrjn @[0] {
name="Fm_Input";
from_type=CUSTOM;
from=.projects[0].networks[0].layers[0]$151$;
spec {type=FullPrjnSpec: spec=.projects[0].networks[0].specs.gp[0][0]$152$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][3].children[4]$153$: };
recv_idx=0;
send_idx=1;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
LeabraPrjn @[1] {
name="Fm_SNc";
from_type=CUSTOM;
from=$16$;
spec {type=TesselPrjnSpec: spec=.projects[0].networks[0].specs.gp[0][4]$154$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][4]$155$: };
recv_idx=1;
send_idx=0;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
LeabraPrjn @[2] {
name="Fm_SNc";
from_type=CUSTOM;
from=$16$;
spec {type=TesselPrjnSpec: spec=.projects[0].networks[0].specs.gp[0][6]$156$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][5]$157$: };
recv_idx=2;
send_idx=1;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
LeabraPrjn @[3] {
name="Fm_Motor_Cortex";
from_type=CUSTOM;
from=$83$;
spec {type=TesselPrjnSpec: spec=.projects[0].networks[0].specs.gp[0][8]$158$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][3].children[2]$159$: };
recv_idx=3;
send_idx=4;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
LeabraPrjn @[4] {
name="Fm_Motor_Cortex";
from_type=CUSTOM;
from=$83$;
spec {type=TesselPrjnSpec: spec=.projects[0].networks[0].specs.gp[0][5]$160$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][3].children[1]$161$: };
recv_idx=4;
send_idx=5;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
};
send_prjns {
name=;
el_typ=LeabraPrjn;
el_def=0;
Projection_Group @. = [0] = LeabraPrjn .projects[0].networks[0].layers[3].projections[0];
Projection_Group @. = [1] = LeabraPrjn .projects[0].networks[0].layers[4].projections[0];
};
units {
name=;
el_typ=LeabraUnit;
el_def=0;
pos {x=0: y=0: z=0: };
unique_geom=0;
geom {x=4: y=9: n_not_xy=0: n=36: };
units_lesioned=0;
output_name=;
};
unit_spec {type=LeabraUnitSpec: spec=$102$: };
ext_flag=;
dmem_dist=DMEM_DIST_DEFAULT;
dist {
fm_input=-1;
fm_output=-1;
};
output_name="Go-R1";
sse=0;
icon_value=0;
netin {avg=1.510151: max=1.842934: max_i=29: };
i_thrs {avg=9.159199: max=11.39792: max_i=29: };
acts {avg=0.0782505: max=0.7843618: max_i=29: };
acts_p {avg=0.08607803: max=0.7926073: max_i=13: };
acts_m {avg=0.08607803: max=0.7926073: max_i=13: };
phase_dif_ratio=1;
kwta {k=3: pct=0.08333334: pct_c=0.9166667: adth_k=1: k_ithr=11.0303: k1_ithr=10.9997: ithr_r=0.002778362: ithr_diff=0.002774485: tie_brk=0: };
i_val {kwta=11.015: g_i=11.015: gp_g_i=0: g_i_orig=11.015: };
un_g_i {avg=11.01501: max=11.015: max_i=0: };
adapt_i {avg_avg=0.08333334: i_kwta_pt=0.5: g_bar_i=1: g_bar_l=1: };
spec {type=LeabraLayerSpec: spec=.projects[0].networks[0].specs.gp[3][0].children[0]$162$: };
stm_gain=0.5;
hard_clamped=0;
dav=0;
net_rescale=1;
avg_netin {avg=0: max=0: max_i=-1: };
avg_netin_sum {avg=0: max=0: max_i=-1: };
avg_netin_n=0;
da_updt=0;
misc_iar{ };
};
LeabraLayer @[2] {
name="SNc";
flags=;
layer_type=INPUT;
pos {x=2: y=0: z=0: };
un_geom {x=2: y=2: n_not_xy=0: n=4: };
unit_groups=0;
gp_geom {x=0: y=0: n_not_xy=0: n=0: };
gp_spc {x=0: y=0: };
act_geom {x=2: y=2: n_not_xy=0: n=4: };
projections {
name=;
el_typ=LeabraPrjn;
el_def=0;
};
send_prjns {
name=;
el_typ=LeabraPrjn;
el_def=0;
Projection_Group @. = [0] = LeabraPrjn .projects[0].networks[0].layers[1].projections[1];
Projection_Group @. = [1] = LeabraPrjn .projects[0].networks[0].layers[1].projections[2];
};
units {
name=;
el_typ=LeabraUnit;
el_def=0;
pos {x=0: y=0: z=0: };
unique_geom=0;
geom {x=2: y=2: n_not_xy=0: n=4: };
units_lesioned=0;
output_name=;
};
unit_spec {type=LeabraUnitSpec: spec=.projects[0].networks[0].specs.gp[2][1]$163$: };
ext_flag=EXT;
dmem_dist=DMEM_DIST_DEFAULT;
dist {
fm_input=-1;
fm_output=-1;
};
output_name=;
sse=0;
icon_value=0;
netin {avg=0.01537416: max=0.01731166: max_i=3: };
i_thrs {avg=0.01530618: max=0.02983745: max_i=3: };
acts {avg=0.647215: max=0.6955121: max_i=3: };
acts_p {avg=0.6431079: max=0.6897681: max_i=1: };
acts_m {avg=0.6431079: max=0.6897681: max_i=1: };
phase_dif_ratio=1;
kwta {k=1: pct=0.25: pct_c=0.75: adth_k=1: k_ithr=0: k1_ithr=0: ithr_r=0: ithr_diff=0: tie_brk=0: };
i_val {kwta=0: g_i=0: gp_g_i=0: g_i_orig=0: };
un_g_i {avg=0: max=0: max_i=0: };
adapt_i {avg_avg=0.25: i_kwta_pt=0.6: g_bar_i=1: g_bar_l=0.1: };
spec {type=LeabraLayerSpec: spec=.projects[0].networks[0].specs.gp[3][0].children[6]$164$: };
stm_gain=0.5;
hard_clamped=0;
dav=0;
net_rescale=1;
avg_netin {avg=0: max=0: max_i=-1: };
avg_netin_sum {avg=0: max=0: max_i=-1: };
avg_netin_n=0;
da_updt=0;
misc_iar{ };
};
LeabraLayer @[3] {
name="GP_Int";
flags=;
layer_type=HIDDEN;
pos {x=6: y=0: z=0: };
un_geom {x=2: y=2: n_not_xy=0: n=4: };
unit_groups=0;
gp_geom {x=0: y=0: n_not_xy=0: n=0: };
gp_spc {x=0: y=0: };
act_geom {x=2: y=2: n_not_xy=0: n=4: };
projections {
name=;
el_typ=LeabraPrjn;
el_def=0;
LeabraPrjn @[0] {
name="Fm_Striatum";
from_type=CUSTOM;
from=$17$;
spec {type=TesselPrjnSpec: spec=.projects[0].networks[0].specs.gp[0][7]$165$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][2].children[1]$166$: };
recv_idx=0;
send_idx=1;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
LeabraPrjn @[1] {
name="Fm_GP_Ext";
from_type=CUSTOM;
from=$86$;
spec {type=TesselPrjnSpec: spec=.projects[0].networks[0].specs.gp[0][2]$167$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][2]$168$: };
recv_idx=1;
send_idx=1;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
LeabraPrjn @[2] {
name="Fm_STN";
from_type=CUSTOM;
from=$82$;
spec {type=FullPrjnSpec: spec=$152$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][3].children[5]$169$: };
recv_idx=2;
send_idx=1;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
};
send_prjns {
name=;
el_typ=LeabraPrjn;
el_def=0;
Projection_Group @. = [0] = LeabraPrjn .projects[0].networks[0].layers[5].projections[0];
};
units {
name=;
el_typ=LeabraUnit;
el_def=0;
pos {x=0: y=0: z=0: };
unique_geom=0;
geom {x=2: y=2: n_not_xy=0: n=4: };
units_lesioned=0;
output_name=;
};
unit_spec {type=LeabraUnitSpec: spec=.projects[0].networks[0].specs.gp[2][0].children[4]$170$: };
ext_flag=;
dmem_dist=DMEM_DIST_DEFAULT;
dist {
fm_input=-1;
fm_output=-1;
};
output_name="R2";
sse=0;
icon_value=0;
netin {avg=0.07113075: max=0.0855621: max_i=2: };
i_thrs {avg=1.283481: max=1.391716: max_i=2: };
acts {avg=0.4611043: max=0.9236104: max_i=2: };
acts_p {avg=0.4150822: max=0.8454967: max_i=2: };
acts_m {avg=0.4150822: max=0.8454967: max_i=2: };
phase_dif_ratio=1;
kwta {k=1: pct=0.25: pct_c=0.75: adth_k=1: k_ithr=1.09251: k1_ithr=1.09251: ithr_r=0: ithr_diff=0: tie_brk=0: };
i_val {kwta=0: g_i=0: gp_g_i=0: g_i_orig=0: };
un_g_i {avg=1.14268: max=1.78849: max_i=3: };
adapt_i {avg_avg=0.25: i_kwta_pt=0.5: g_bar_i=1: g_bar_l=3: };
spec {type=LeabraLayerSpec: spec=.projects[0].networks[0].specs.gp[3][0].children[1]$171$: };
stm_gain=0.5;
hard_clamped=0;
dav=0;
net_rescale=1;
avg_netin {avg=0: max=0: max_i=-1: };
avg_netin_sum {avg=0: max=0: max_i=-1: };
avg_netin_n=0;
da_updt=0;
misc_iar{ };
};
LeabraLayer @[4] {
name="GP_Ext";
flags=;
layer_type=HIDDEN;
pos {x=6: y=4: z=0: };
un_geom {x=2: y=1: n_not_xy=0: n=2: };
unit_groups=0;
gp_geom {x=0: y=0: n_not_xy=0: n=0: };
gp_spc {x=0: y=0: };
act_geom {x=2: y=1: n_not_xy=0: n=2: };
projections {
name=;
el_typ=LeabraPrjn;
el_def=0;
LeabraPrjn @[0] {
name="Fm_Striatum";
from_type=CUSTOM;
from=$17$;
spec {type=TesselPrjnSpec: spec=$167$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][6]$172$: };
recv_idx=0;
send_idx=0;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
LeabraPrjn @[1] {
name="Fm_STN";
from_type=CUSTOM;
from=$82$;
spec {type=UniformRndPrjnSpec: spec=.projects[0].networks[0].specs[1]$173$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][3].children[0]$174$: };
recv_idx=1;
send_idx=0;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
};
send_prjns {
name=;
el_typ=LeabraPrjn;
el_def=0;
Projection_Group @. = [0] = LeabraPrjn .projects[0].networks[0].layers[3].projections[1];
Projection_Group @. = [1] = LeabraPrjn .projects[0].networks[0].layers[8].projections[1];
};
units {
name=;
el_typ=LeabraUnit;
el_def=0;
pos {x=0: y=0: z=0: };
unique_geom=0;
geom {x=2: y=1: n_not_xy=0: n=2: };
units_lesioned=0;
output_name=;
};
unit_spec {type=LeabraUnitSpec: spec=.projects[0].networks[0].specs.gp[2][0].children[0]$175$: };
ext_flag=;
dmem_dist=DMEM_DIST_DEFAULT;
dist {
fm_input=-1;
fm_output=-1;
};
output_name="R1";
sse=0;
icon_value=0;
netin {avg=0.1256137: max=0.1608976: max_i=1: };
i_thrs {avg=0.9921025: max=1.256732: max_i=1: };
acts {avg=0.9708879: max=0.9711923: max_i=1: };
acts_p {avg=0.9079125: max=0.9562136: max_i=0: };
acts_m {avg=0.9079125: max=0.9562136: max_i=0: };
phase_dif_ratio=1;
kwta {k=1: pct=0.5: pct_c=0.5: adth_k=1: k_ithr=0.0999999: k1_ithr=0.0999999: ithr_r=0: ithr_diff=0: tie_brk=0: };
i_val {kwta=0: g_i=0: gp_g_i=0: g_i_orig=0: };
un_g_i {avg=0.06431491: max=0.1286298: max_i=1: };
adapt_i {avg_avg=0.5: i_kwta_pt=0.5: g_bar_i=2.5: g_bar_l=1: };
spec {type=LeabraLayerSpec: spec=$171$: };
stm_gain=0.5;
hard_clamped=0;
dav=0;
net_rescale=1;
avg_netin {avg=0: max=0: max_i=-1: };
avg_netin_sum {avg=0: max=0: max_i=-1: };
avg_netin_n=0;
da_updt=0;
misc_iar{ };
};
LeabraLayer @[5] {
name="Thalamus";
flags=;
layer_type=HIDDEN;
pos {x=12: y=0: z=1: };
un_geom {x=2: y=1: n_not_xy=0: n=2: };
unit_groups=0;
gp_geom {x=0: y=0: n_not_xy=0: n=0: };
gp_spc {x=0: y=0: };
act_geom {x=2: y=1: n_not_xy=0: n=2: };
projections {
name=;
el_typ=LeabraPrjn;
el_def=0;
LeabraPrjn @[0] {
name="Fm_GP_Int";
from_type=CUSTOM;
from=$85$;
spec {type=TesselPrjnSpec: spec=.projects[0].networks[0].specs.gp[0][3]$176$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][2].children[0]$177$: };
recv_idx=0;
send_idx=0;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
LeabraPrjn @[1] {
name="Fm_Motor_Cortex";
from_type=CUSTOM;
from=$83$;
spec {type=TesselPrjnSpec: spec=$176$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][1]$178$: };
recv_idx=1;
send_idx=3;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
};
send_prjns {
name=;
el_typ=LeabraPrjn;
el_def=0;
Projection_Group @. = [0] = LeabraPrjn .projects[0].networks[0].layers[6].projections[0];
};
units {
name=;
el_typ=LeabraUnit;
el_def=0;
pos {x=0: y=0: z=0: };
unique_geom=0;
geom {x=2: y=1: n_not_xy=0: n=2: };
units_lesioned=0;
output_name=;
};
unit_spec {type=LeabraUnitSpec: spec=.projects[0].networks[0].specs.gp[2][0].children[2]$179$: };
ext_flag=;
dmem_dist=DMEM_DIST_DEFAULT;
dist {
fm_input=-1;
fm_output=-1;
};
output_name="R1";
sse=0;
icon_value=0;
netin {avg=0.1785989: max=0.3571934: max_i=1: };
i_thrs {avg=1.269492: max=2.60895: max_i=1: };
acts {avg=0.4922692: max=0.9845384: max_i=1: };
acts_p {avg=0.4962071: max=0.9924142: max_i=1: };
acts_m {avg=0.4962071: max=0.9924142: max_i=1: };
phase_dif_ratio=1;
kwta {k=1: pct=0.5: pct_c=0.5: adth_k=1: k_ithr=0.979331: k1_ithr=0.746659: ithr_r=0.271261: ithr_diff=0: tie_brk=0: };
i_val {kwta=0: g_i=0: gp_g_i=0: g_i_orig=0: };
un_g_i {avg=0.3659378: max=0.7309765: max_i=0: };
adapt_i {avg_avg=0.5: i_kwta_pt=0.6: g_bar_i=1.7: g_bar_l=0.07: };
spec {type=LeabraLayerSpec: spec=.projects[0].networks[0].specs.gp[3][0].children[2]$180$: };
stm_gain=0.5;
hard_clamped=0;
dav=0;
net_rescale=1;
avg_netin {avg=0: max=0: max_i=-1: };
avg_netin_sum {avg=0: max=0: max_i=-1: };
avg_netin_n=0;
da_updt=0;
misc_iar{ };
};
LeabraLayer @[6] {
name="Motor_Cortex";
flags=NO_ADD_SSE|NO_ADD_COMP_SSE;
layer_type=TARGET;
pos {x=10: y=0: z=2: };
un_geom {x=2: y=2: n_not_xy=0: n=4: };
unit_groups=0;
gp_geom {x=0: y=0: n_not_xy=0: n=0: };
gp_spc {x=0: y=0: };
act_geom {x=2: y=2: n_not_xy=0: n=4: };
projections {
name=;
el_typ=LeabraPrjn;
el_def=0;
LeabraPrjn @[0] {
name="Fm_Thalamus";
from_type=CUSTOM;
from=$84$;
spec {type=TesselPrjnSpec: spec=$176$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=$178$: };
recv_idx=0;
send_idx=0;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
LeabraPrjn @[1] {
name="Fm_Input";
from_type=CUSTOM;
from=$151$;
spec {type=FullPrjnSpec: spec=$152$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][3].children[3]$181$: };
recv_idx=1;
send_idx=0;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
};
send_prjns {
name=;
el_typ=LeabraPrjn;
el_def=0;
Projection_Group @. = [0] = LeabraPrjn .projects[0].networks[0].layers[5].projections[1];
Projection_Group @. = [1] = LeabraPrjn .projects[0].networks[0].layers[7].projections[0];
Projection_Group @. = [2] = LeabraPrjn .projects[0].networks[0].layers[7].projections[1];
Projection_Group @. = [3] = LeabraPrjn .projects[0].networks[0].layers[8].projections[0];
Projection_Group @. = [4] = LeabraPrjn .projects[0].networks[0].layers[1].projections[3];
Projection_Group @. = [5] = LeabraPrjn .projects[0].networks[0].layers[1].projections[4];
};
units {
name=;
el_typ=LeabraUnit;
el_def=0;
pos {x=0: y=0: z=0: };
unique_geom=0;
geom {x=2: y=2: n_not_xy=0: n=4: };
units_lesioned=0;
output_name=;
};
unit_spec {type=LeabraUnitSpec: spec=.projects[0].networks[0].specs.gp[2][0].children[3].children[1]$182$: };
ext_flag=TARG;
dmem_dist=DMEM_DIST_DEFAULT;
dist {
fm_input=-1;
fm_output=-1;
};
output_name="R1";
sse=0;
icon_value=0;
netin {avg=2.868245: max=3.241691: max_i=1: };
i_thrs {avg=21.41184: max=24.21268: max_i=1: };
acts {avg=0.4489419: max=0.8953166: max_i=3: };
acts_p {avg=0.4449383: max=0.8887834: max_i=3: };
acts_m {avg=0.4449383: max=0.8887834: max_i=3: };
phase_dif_ratio=1;
kwta {k=3: pct=0.75: pct_c=0.25: adth_k=1: k_ithr=22.35889: k1_ithr=18.57069: ithr_r=0.1856392: ithr_diff=0.1694268: tie_brk=0: };
i_val {kwta=20.84361: g_i=20.84361: gp_g_i=0: g_i_orig=20.84361: };
un_g_i {avg=20.84361: max=20.84361: max_i=0: };
adapt_i {avg_avg=0.75: i_kwta_pt=0.6: g_bar_i=1: g_bar_l=0.1: };
spec {type=LeabraLayerSpec: spec=.projects[0].networks[0].specs.gp[3][0]$183$: };
stm_gain=0.5;
hard_clamped=0;
dav=0;
net_rescale=1;
avg_netin {avg=0: max=0: max_i=-1: };
avg_netin_sum {avg=0: max=0: max_i=-1: };
avg_netin_n=0;
da_updt=0;
misc_iar{ };
};
LeabraLayer @[7] {
name="Output";
flags=;
layer_type=TARGET;
pos {x=8: y=6: z=2: };
un_geom {x=2: y=1: n_not_xy=0: n=2: };
unit_groups=0;
gp_geom {x=0: y=0: n_not_xy=0: n=0: };
gp_spc {x=0: y=0: };
act_geom {x=2: y=1: n_not_xy=0: n=2: };
projections {
name=;
el_typ=LeabraPrjn;
el_def=0;
LeabraPrjn @[0] {
name="Fm_Motor_Cortex";
from_type=CUSTOM;
from=$83$;
spec {type=TesselPrjnSpec: spec=$165$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=$178$: };
recv_idx=0;
send_idx=1;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
LeabraPrjn @[1] {
name="Fm_Motor_Cortex";
from_type=CUSTOM;
from=$83$;
spec {type=OneToOnePrjnSpec: spec=.projects[0].networks[0].specs.gp[0][9]$184$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=$178$: };
recv_idx=1;
send_idx=2;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
};
send_prjns {
name=;
el_typ=LeabraPrjn;
el_def=0;
};
units {
name=;
el_typ=LeabraUnit;
el_def=0;
pos {x=0: y=0: z=0: };
unique_geom=0;
geom {x=2: y=1: n_not_xy=0: n=2: };
units_lesioned=0;
output_name=;
};
unit_spec {type=LeabraUnitSpec: spec=.projects[0].networks[0].specs.gp[2][0].children[1]$185$: };
ext_flag=TARG;
dmem_dist=DMEM_DIST_DEFAULT;
dist {
fm_input=-1;
fm_output=-1;
};
output_name=;
sse=1.984406;
icon_value=0;
netin {avg=0.223297: max=0.4465939: max_i=1: };
i_thrs {avg=2.572752: max=6.145503: max_i=1: };
acts {avg=0.4959215: max=0.991843: max_i=1: };
acts_p {avg=0.4960862: max=0.9921724: max_i=1: };
acts_m {avg=0.4960862: max=0.9921724: max_i=1: };
phase_dif_ratio=1;
kwta {k=1: pct=0.5: pct_c=0.5: adth_k=1: k_ithr=6.145503: k1_ithr=-1: ithr_r=0: ithr_diff=1.162721: tie_brk=0: };
i_val {kwta=0: g_i=0: gp_g_i=0: g_i_orig=0: };
un_g_i {avg=0: max=0: max_i=0: };
adapt_i {avg_avg=0.5: i_kwta_pt=0: g_bar_i=1: g_bar_l=1: };
spec {type=LeabraLayerSpec: spec=.projects[0].networks[0].specs.gp[3][0].children[3]$186$: };
stm_gain=0.5;
hard_clamped=0;
dav=0;
net_rescale=1;
avg_netin {avg=0: max=0: max_i=-1: };
avg_netin_sum {avg=0: max=0: max_i=-1: };
avg_netin_n=0;
da_updt=0;
misc_iar{ };
};
LeabraLayer @[8] {
name="STN";
flags=;
layer_type=HIDDEN;
pos {x=7: y=1: z=1: };
un_geom {x=3: y=3: n_not_xy=0: n=9: };
unit_groups=0;
gp_geom {x=2: y=1: n_not_xy=0: n=2: };
gp_spc {x=0: y=0: };
act_geom {x=3: y=3: n_not_xy=0: n=9: };
projections {
name=;
el_typ=LeabraPrjn;
el_def=0;
LeabraPrjn @[0] {
name="Fm_Motor_Cortex";
from_type=CUSTOM;
from=$83$;
spec {type=FullPrjnSpec: spec=$152$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=.projects[0].networks[0].specs.gp[1][3].children[6]$187$: };
recv_idx=0;
send_idx=0;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
LeabraPrjn @[1] {
name="Fm_GP_Ext";
from_type=CUSTOM;
from=$86$;
spec {type=UniformRndPrjnSpec: spec=.projects[0].networks[0].specs[2]$188$: };
con_type=LeabraCon;
recvcons_type=LeabraRecvCons;
sendcons_type=LeabraSendCons;
con_spec {type=LeabraConSpec: spec=$172$: };
recv_idx=1;
send_idx=0;
recv_n=1;
send_n=1;
projected=1;
direction=DIR_UNKNOWN;
netin_avg=0;
netin_rel=0;
avg_netin_avg=0;
avg_netin_avg_sum=0;
avg_netin_rel=0;
avg_netin_rel_sum=0;
avg_netin_n=0;
trg_netin_rel=-1;
};
};
send_prjns {
name=;
el_typ=LeabraPrjn;
el_def=0;
Projection_Group @. = [0] = LeabraPrjn .projects[0].networks[0].layers[3].projections[2];
Projection_Group @. = [1] = LeabraPrjn .projects[0].networks[0].layers[4].projections[1];
};
units {
name=;
el_typ=LeabraUnit;
el_def=0;
pos {x=0: y=0: z=0: };
unique_geom=0;
geom {x=3: y=3: n_not_xy=0: n=9: };
units_lesioned=0;
output_name=;
};
unit_spec {type=LeabraUnitSpec: spec=.projects[0].networks[0].specs.gp[2][0].children[3].children[2]$189$: };
ext_flag=;
dmem_dist=DMEM_DIST_DEFAULT;
dist {
fm_input=-1;
fm_output=-1;
};
output_name=;
sse=0;
icon_value=0;
netin {avg=0.1796961: max=0.2133077: max_i=3: };
i_thrs {avg=0.8477212: max=1.099808: max_i=3: };
acts {avg=0.2072951: max=0.8850191: max_i=3: };
acts_p {avg=0.0886254: max=0.5460718: max_i=3: };
acts_m {avg=0.0886254: max=0.5460718: max_i=3: };
phase_dif_ratio=1;
kwta {k=2: pct=0.2222222: pct_c=0.7777778: adth_k=1: k_ithr=1.60686: k1_ithr=1.38061: ithr_r=0.151759: ithr_diff=0: tie_brk=0: };
i_val {kwta=0: g_i=0: gp_g_i=0: g_i_orig=0: };
un_g_i {avg=1.017167: max=1.059605: max_i=0: };
adapt_i {avg_avg=0.2222222: i_kwta_pt=0.5: g_bar_i=1: g_bar_l=1: };
spec {type=LeabraLayerSpec: spec=.projects[0].networks[0].specs.gp[3][1].children[0]$190$: };
stm_gain=0.5;
hard_clamped=0;
dav=0;
net_rescale=1;
avg_netin {avg=0: max=0: max_i=-1: };
avg_netin_sum {avg=0: max=0: max_i=-1: };
avg_netin_n=0;
da_updt=0;
misc_iar{ };
};
};
view_objs {
name=;
el_typ=NetViewObj;
el_def=0;
};
flags=;
auto_build=AUTO_BUILD;
train_mode=TEST;
wt_update=ON_LINE;
small_batch_n=10;
batch=0;
epoch=0;
group=0;
trial=0;
tick=0;
cycle=77;
time=0;
group_name=;
trial_name="1100_09_889";
output_name=;
sse_unit_avg=0;
sse_sqrt=0;
sse=0;
sum_sse=0;
avg_sse=0;
cnt_err_tol=0.4;
cnt_err=0;
cur_sum_sse=0;
avg_sse_n=0;
cur_cnt_err=0;
train_time {name="train_time": start={usr=1455: sys=43: tot=723144884: }: end={usr=826668: sys=208224: tot=722144431: }: used={usr=0: sys=0: tot=0: }: s_used=0: n_used=0: };
epoch_time {name="epoch_time": start={usr=1458: sys=43: tot=723144888: }: end={usr=826668: sys=208224: tot=722144431: }: used={usr=0: sys=0: tot=0: }: s_used=0: n_used=0: };
trial_time {name="trial_time": start={usr=0: sys=0: tot=0: }: end={usr=0: sys=0: tot=0: }: used={usr=0: sys=0: tot=0: }: s_used=0: n_used=0: };
settle_time {name="settle_time": start={usr=0: sys=0: tot=0: }: end={usr=0: sys=0: tot=0: }: used={usr=0: sys=0: tot=0: }: s_used=0: n_used=0: };
cycle_time {name="cycle_time": start={usr=0: sys=0: tot=0: }: end={usr=0: sys=0: tot=0: }: used={usr=0: sys=0: tot=0: }: s_used=0: n_used=0: };
wt_sync_time {name="wt_sync_time": start={usr=0: sys=0: tot=0: }: end={usr=0: sys=0: tot=0: }: used={usr=0: sys=0: tot=0: }: s_used=0: n_used=0: };
misc_time {name="misc_time": start={usr=0: sys=0: tot=0: }: end={usr=0: sys=0: tot=0: }: used={usr=0: sys=0: tot=0: }: s_used=0: n_used=0: };
dmem_sync_level=DMEM_SYNC_NETWORK;
dmem_nprocs=1;
usr1_save_fmt=FULL_NET;
wt_save_fmt=TEXT;
lay_layout=THREE_D;
n_units=88;
n_cons=1427;
max_size {x=14: y=9: z=3: };
font_sizes {
net_name=0.05;
net_vals=0.05;
layer=0.04;
layer_vals=0.03;
prjn=0.01;
unit=0.02;
un_nm_len=3;
};
view_params {
xy_square=0;
unit_spacing=0.05;
prjn_disp=L_R_F;
prjn_name=0;
prjn_width=0.002;
prjn_trans=0.5;
lay_trans=0.5;
unit_trans=0.6;
};
phase_order=MINUS_PLUS;
no_plus_test=1;
trial_init=DECAY_STATE;
sequence_init=DO_NOTHING;
first_plus_dwt=ONLY_FIRST_DWT;
phase=MINUS_PHASE;
nothing_phase=0;
phase_no=0;
phase_max=1;
cycle_max=100;
min_cycles=15;
min_cycles_phase2=35;
minus_cycles=0;
avg_cycles=0;
avg_cycles_sum=0;
avg_cycles_n=0;
netin_mod=1;
send_delta=0;
send_pct=0.3174603;
send_pct_n=20;
send_pct_tot=63;
avg_send_pct=0;
avg_send_pct_sum=28.28574;
avg_send_pct_n=78;
maxda_stopcrit=0.005;
maxda=0.04341922;
trg_max_act_stopcrit=1;
trg_max_act=0.991843;
ext_rew=0;
avg_ext_rew=0;
avg_ext_rew_sum=0;
avg_ext_rew_n=0;
};
};
};