// ta_Dump File v3.0 -- code v8.0.1.0 rev10018 LeabraProject .projects["SRN_midterm16"] { Doc_Group @.docs = [1] { taDoc @["Instructions"] { UserDataItem_List @*(.user_data_) { UserDataItem @["user_pinned"] { }; }; }; }; Wizard_Group @.wizards = [1] { LeabraWizard @["LeabraWizard_7"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NO_CLIP"] { }; UserDataItem @["user_pinned"] { }; }; }; }; ControlPanel_Group @.ctrl_panels = [1] { ClusterRun @["ClusterRun"] { UserDataItem_List @*(.user_data_) { UserDataItem @["user_pinned"] { }; }; EditMbrItem_Group @.mbrs = [0] { }; EditMthItem_Group @.mths = [0] { }; DataTableCols @.jobs_running.data = [33] { String_Data @["cluster"] { }; String_Data @["user"] { }; String_Data @["tag"] { }; String_Data @["status"] { }; String_Data @["label"] { }; String_Data @["notes"] { }; String_Data @["filename"] { }; String_Data @["params"] { }; String_Data @["status_info"] { }; String_Data @["submit_time"] { }; String_Data @["start_time"] { }; String_Data @["end_time"] { }; String_Data @["running_time"] { }; String_Data @["job_no"] { }; String_Data @["job_out"] { }; String_Data @["job_out_file"] { }; String_Data @["dat_files"] { }; String_Data @["other_files"] { }; int_Data @["command_id"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; String_Data @["command"] { }; String_Data @["repo_url"] { }; String_Data @["queue"] { }; String_Data @["run_time"] { }; int_Data @["ram_gb"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["n_threads"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["mpi_nodes"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["mpi_per_node"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["pb_batches"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["pb_nodes"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; String_Data @["submit_svn"] { }; String_Data @["submit_job"] { }; String_Data @["done_svn"] { }; String_Data @["last_svn"] { }; }; DataOpList @.jobs_running.last_sort_spec.ops = [0] { }; DataTableCell_List @.jobs_running.control_panel_cells = [0] { }; DataTableCols @.jobs_done.data = [33] { String_Data @["cluster"] { }; String_Data @["user"] { }; String_Data @["tag"] { }; String_Data @["status"] { }; String_Data @["label"] { }; String_Data @["notes"] { }; String_Data @["filename"] { }; String_Data @["params"] { }; String_Data @["status_info"] { }; String_Data @["submit_time"] { }; String_Data @["start_time"] { }; String_Data @["end_time"] { }; String_Data @["running_time"] { }; String_Data @["job_no"] { }; String_Data @["job_out"] { }; String_Data @["job_out_file"] { }; String_Data @["dat_files"] { }; String_Data @["other_files"] { }; int_Data @["command_id"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; String_Data @["command"] { }; String_Data @["repo_url"] { }; String_Data @["queue"] { }; String_Data @["run_time"] { }; int_Data @["ram_gb"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["n_threads"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["mpi_nodes"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["mpi_per_node"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["pb_batches"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["pb_nodes"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; String_Data @["submit_svn"] { }; String_Data @["submit_job"] { }; String_Data @["done_svn"] { }; String_Data @["last_svn"] { }; }; DataOpList @.jobs_done.last_sort_spec.ops = [0] { }; DataTableCell_List @.jobs_done.control_panel_cells = [0] { }; DataTableCols @.jobs_deleted.data = [33] { String_Data @["cluster"] { }; String_Data @["user"] { }; String_Data @["tag"] { }; String_Data @["status"] { }; String_Data @["label"] { }; String_Data @["notes"] { }; String_Data @["filename"] { }; String_Data @["params"] { }; String_Data @["status_info"] { }; String_Data @["submit_time"] { }; String_Data @["start_time"] { }; String_Data @["end_time"] { }; String_Data @["running_time"] { }; String_Data @["job_no"] { }; String_Data @["job_out"] { }; String_Data @["job_out_file"] { }; String_Data @["dat_files"] { }; String_Data @["other_files"] { }; int_Data @["command_id"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; String_Data @["command"] { }; String_Data @["repo_url"] { }; String_Data @["queue"] { }; String_Data @["run_time"] { }; int_Data @["ram_gb"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["n_threads"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["mpi_nodes"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["mpi_per_node"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["pb_batches"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["pb_nodes"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; String_Data @["submit_svn"] { }; String_Data @["submit_job"] { }; String_Data @["done_svn"] { }; String_Data @["last_svn"] { }; }; DataOpList @.jobs_deleted.last_sort_spec.ops = [0] { }; DataTableCell_List @.jobs_deleted.control_panel_cells = [0] { }; DataTableCols @.jobs_archive.data = [33] { String_Data @["cluster"] { }; String_Data @["user"] { }; String_Data @["tag"] { }; String_Data @["status"] { }; String_Data @["label"] { }; String_Data @["notes"] { }; String_Data @["filename"] { }; String_Data @["params"] { }; String_Data @["status_info"] { }; String_Data @["submit_time"] { }; String_Data @["start_time"] { }; String_Data @["end_time"] { }; String_Data @["running_time"] { }; String_Data @["job_no"] { }; String_Data @["job_out"] { }; String_Data @["job_out_file"] { }; String_Data @["dat_files"] { }; String_Data @["other_files"] { }; int_Data @["command_id"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; String_Data @["command"] { }; String_Data @["repo_url"] { }; String_Data @["queue"] { }; String_Data @["run_time"] { }; int_Data @["ram_gb"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["n_threads"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["mpi_nodes"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["mpi_per_node"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["pb_batches"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["pb_nodes"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; String_Data @["submit_svn"] { }; String_Data @["submit_job"] { }; String_Data @["done_svn"] { }; String_Data @["last_svn"] { }; }; DataOpList @.jobs_archive.last_sort_spec.ops = [0] { }; DataTableCell_List @.jobs_archive.control_panel_cells = [0] { }; DataTableCols @.file_list.data = [11] { String_Data @["cluster"] { }; String_Data @["user"] { }; String_Data @["file_name"] { }; String_Data @["tag"] { }; String_Data @["size"] { }; String_Data @["kind"] { }; String_Data @["date_modified"] { }; String_Data @["date_created"] { }; String_Data @["svn_file_path"] { }; String_Data @["proj_file_path"] { }; String_Data @["file_path"] { }; }; DataOpList @.file_list.last_sort_spec.ops = [0] { }; DataTableCell_List @.file_list.control_panel_cells = [0] { }; DataTableCols @.cluster_info.data = [6] { String_Data @["queue"] { }; String_Data @["job_no"] { }; String_Data @["user"] { }; String_Data @["state"] { }; String_Data @["procs"] { }; String_Data @["start_time"] { }; }; DataOpList @.cluster_info.last_sort_spec.ops = [0] { }; DataTableCell_List @.cluster_info.control_panel_cells = [0] { }; ParamSearchAlgo_List @.search_algos = [0] { }; }; }; ParamSet_Group @.param_sets = [0] { }; DataTable_Group @.data = [0] { DataTable_Group @.gp["InputData"] { }; DataTable_Group @.gp["OutputData"] { }; DataTable_Group @.gp["AnalysisData"] { }; DataTable_Group @.gp["grammar"] = [2] { DataTable @["train_env"] { UserDataItem_List @*(.user_data_) { UserDataItem @["N_ROWS"] { }; }; DataTableCols @.data = [5] { String_Data @["Group"] { }; String_Data @["Name"] { }; float_Data @["Input"] { }; float_Data @["Output"] { }; float_Data @["Targets"] { }; }; DataOpList @.last_sort_spec.ops = [0] { }; DataTableCell_List @.control_panel_cells = [0] { }; }; DataTable @["UnitNames"] { UserDataItem_List @*(.user_data_) { UserDataItem @["N_ROWS"] { }; UserDataItem @["MAT_VAL_TEXT"] { }; UserDataItem @["WIDTH"] { }; }; DataTableCols @.data = [3] { String_Data @["Input"] { }; String_Data @["Output"] { }; String_Data @["Targets"] { }; }; DataOpList @.last_sort_spec.ops = [0] { }; DataTableCell_List @.control_panel_cells = [0] { }; }; }; }; Program_TopGroup @.programs = [0] { Program_Group @.gp["InputGeneration"] = [3] { Program @["GenData"] { UserDataItem_List @*(.user_data_) { UserData_DocLink @["DocLink"] { }; }; ProgObjList @.objs = [0] { }; ProgType_List @.types = [1] { DynEnumType @["InputType"] { DynEnumItem_List @.enums = [2] { DynEnumItem @["TRAIN_ENV"] { }; DynEnumItem @["RANDOM"] { }; }; }; }; ProgVar_List @.args = [3] { ProgVar @["input_data"] { }; ProgVar @["n_seq"] { }; ProgVar @["n_epochs_per_env"] { }; }; ProgVar_List @.vars = [3] { ProgVar @["i"] { }; ProgVar @["avg_length"] { }; ProgVar @["input_type"] { }; }; Function_List @.functions = [0] { }; ProgEl_List @.init_code = [0] { }; ProgEl_List @.prog_code = [5] { IfReturn @[0] { }; ResetDataRows @[1] { }; ForLoop @[2] { ProgEl_List @.loop_code = [1] { Switch @[0] { ProgEl_List @.cases = [1] { CaseBlock @[0] { ProgEl_List @.prog_code = [1] { ProgramCall @[0] { ProgArg_List @.prog_args = [2] { ProgArg @[0] { }; ProgArg @[1] { }; }; }; }; }; }; }; }; }; AssignExpr @[3] { }; PrintVar @[4] { }; }; }; Program @["ReberGenSequence"] { UserDataItem_List @*(.user_data_) { UserData_DocLink @["DocLink"] { }; }; ProgObjList @.objs = [2] { DataTable @["TransitionMatrix"] { DataTableCols @.data = [6] { float_Data @["DestNode0"] { }; float_Data @["DestNode1"] { }; float_Data @["DestNode2"] { }; float_Data @["DestNode3"] { }; float_Data @["DestNode4"] { }; float_Data @["DestNode5"] { }; }; DataOpList @.last_sort_spec.ops = [0] { }; DataTableCell_List @.control_panel_cells = [0] { }; }; DataTable @["PathLabelInds"] { DataTableCols @.data = [6] { int_Data @["ToDestNode0LabelInd"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["ToDestNode1LabelInd"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["ToDestNode2LabelInd"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["ToDestNode3LabelInd"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["ToDestNode4LabelInd"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; int_Data @["ToDestNode5LabelInd"] { UserDataItem_List @*(.user_data_) { UserDataItem @["NARROW"] { }; }; }; }; DataOpList @.last_sort_spec.ops = [0] { }; DataTableCell_List @.control_panel_cells = [0] { }; }; }; ProgType_List @.types = [0] { }; ProgVar_List @.args = [2] { ProgVar @["input_data"] { }; ProgVar @["seq_no"] { }; }; ProgVar_List @.vars = [13] { ProgVar @["unit_names"] { }; ProgVar @["TransitionMatrix"] { }; ProgVar @["PathLabelInds"] { }; ProgVar @["state"] { }; ProgVar @["prv_label_ind"] { }; ProgVar @["next_label_ind"] { }; ProgVar @["oth_label_ind"] { }; ProgVar @["n_state"] { }; ProgVar @["next_state"] { }; ProgVar @["tot_p"] { }; ProgVar @["prob"] { }; ProgVar @["state_p"] { }; ProgVar @["i"] { }; }; Function_List @.functions = [0] { }; ProgEl_List @.init_code = [0] { }; ProgEl_List @.prog_code = [7] { Comment @[0] { }; AssignExpr @[1] { }; AssignExpr @[2] { }; AssignExpr @[3] { }; AssignExpr @[4] { }; WhileLoop @[5] { ProgEl_List @.loop_code = [7] { AssignExpr @[0] { }; AssignExpr @[1] { }; AssignExpr @[2] { }; RandomCall @[3] { ProgArg_List @.meth_args = [1] { ProgArg @[0] { }; }; }; ForLoop @[4] { ProgEl_List @.loop_code = [5] { MethodCall @[0] { ProgArg_List @.meth_args = [2] { ProgArg @[0] { }; ProgArg @[1] { }; }; }; If @[1] { ProgEl_List @.true_code = [3] { MethodCall @[0] { ProgArg_List @.meth_args = [2] { ProgArg @[0] { }; ProgArg @[1] { }; }; }; AssignExpr @[1] { }; AssignExpr @[2] { }; }; }; Else @[2] { ProgEl_List @.else_code = [1] { If @[0] { ProgEl_List @.true_code = [1] { MethodCall @[0] { ProgArg_List @.meth_args = [2] { ProgArg @[0] { }; ProgArg @[1] { }; }; }; }; }; }; }; VarIncr @[3] { }; PrintExpr @[4] { }; }; }; ProgramCall @[5] { ProgArg_List @.prog_args = [7] { ProgArg @[0] { }; ProgArg @[1] { }; ProgArg @[2] { }; ProgArg @[3] { }; ProgArg @[4] { }; ProgArg @[5] { }; ProgArg @[6] { }; }; }; AssignExpr @[6] { }; }; }; ProgramCall @[6] { ProgArg_List @.prog_args = [7] { ProgArg @[0] { }; ProgArg @[1] { }; ProgArg @[2] { }; ProgArg @[3] { }; ProgArg @[4] { }; ProgArg @[5] { }; ProgArg @[6] { }; }; }; }; }; Program @["GenTrial"] { UserDataItem_List @*(.user_data_) { UserData_DocLink @["DocLink"] { }; }; ProgObjList @.objs = [1] { DataTable @["PathLabels"] { DataTableCols @.data = [1] { String_Data @["label"] { }; }; DataOpList @.last_sort_spec.ops = [0] { }; DataTableCell_List @.control_panel_cells = [0] { }; }; }; ProgType_List @.types = [3] { DynEnumType @["Input"] { DynEnumItem_List @.enums = [6] { DynEnumItem @["I_B"] { }; DynEnumItem @["I_T"] { }; DynEnumItem @["I_S"] { }; DynEnumItem @["I_X"] { }; DynEnumItem @["I_V"] { }; DynEnumItem @["I_P"] { }; }; }; DynEnumType @["Output"] { DynEnumItem_List @.enums = [6] { DynEnumItem @["O_T"] { }; DynEnumItem @["O_S"] { }; DynEnumItem @["O_X"] { }; DynEnumItem @["O_V"] { }; DynEnumItem @["O_P"] { }; DynEnumItem @["O_E"] { }; }; }; DynEnumType @["Targets"] { DynEnumItem_List @.enums = [6] { DynEnumItem @["T_T"] { }; DynEnumItem @["T_S"] { }; DynEnumItem @["T_X"] { }; DynEnumItem @["T_V"] { }; DynEnumItem @["T_P"] { }; DynEnumItem @["T_E"] { }; }; }; }; ProgVar_List @.args = [7] { ProgVar @["input_data"] { }; ProgVar @["prv_label_ind"] { }; ProgVar @["next_label_ind"] { }; ProgVar @["oth_label_ind"] { }; ProgVar @["state"] { }; ProgVar @["next_state"] { }; ProgVar @["seq_no"] { }; }; ProgVar_List @.vars = [9] { ProgVar @["PathLabels"] { }; ProgVar @["label"] { }; ProgVar @["Name"] { }; ProgVar @["unit_names"] { }; ProgVar @["curInput"] { }; ProgVar @["curTarget_actual"] { }; ProgVar @["curTarget_other"] { }; ProgVar @["curOutput"] { }; ProgVar @["Group"] { }; }; Function_List @.functions = [0] { }; ProgEl_List @.init_code = [0] { }; ProgEl_List @.prog_code = [16] { AddNewDataRow @[0] { }; DataVarProg @[1] { }; AssignExpr @[2] { }; If @[3] { ProgEl_List @.true_code = [1] { AssignExpr @[0] { }; }; }; Else @[4] { ProgEl_List @.else_code = [1] { AssignExpr @[0] { }; }; }; DataVarProg @[5] { }; VarIncr @[6] { }; If @[7] { ProgEl_List @.true_code = [1] { AssignExpr @[0] { }; }; }; Else @[8] { ProgEl_List @.else_code = [1] { AssignExpr @[0] { }; }; }; AssignExpr @[9] { }; If @[10] { ProgEl_List @.true_code = [3] { DataVarProg @[0] { }; AssignExpr @[1] { }; SetUnitsVar @[2] { }; }; }; PrintExpr @[11] { }; SetUnitsVar @[12] { }; PrintExpr @[13] { }; AssignExpr @[14] { }; DataVarProg @[15] { }; }; }; }; }; taViewer_List @.viewers = [1] { MainWindowViewer @["Browser11"] { UserDataItem_List @*(.user_data_) { UserDataItem @["view_win_lft"] { }; UserDataItem @["view_win_top"] { }; UserDataItem @["view_win_wd"] { }; UserDataItem @["view_win_ht"] { }; UserDataItem @["view_win_iconified"] { }; UserDataItem @["view_splitter_state"] { }; }; ToolBar_List @.toolbars = [1] { ToolBar @["Application"] { UserDataItem_List @*(.user_data_) { UserDataItem @["view_win_visible"] { }; }; }; }; FrameViewer_List @.frames = [3] { BrowseViewerTaBase @["Navigator"] { }; PanelViewer @["Editor"] { }; T3PanelViewer @["T3Frames"] { UserDataItem_List @*(.user_data_) { UserDataItem @["view_panel_selected"] { }; }; T3Panel_List @.panels = [1] { T3Panel @["Network_1"] { T3DataView_List @.root_view.children = [0] { }; T3SavedView_List @.saved_views = [10] { T3SavedView @["Vw_0"] { }; T3SavedView @["Vw_1"] { }; T3SavedView @["Vw_2"] { }; T3SavedView @["Vw_3"] { }; T3SavedView @["Vw_4"] { }; T3SavedView @["Vw_5"] { }; T3SavedView @["Vw_6"] { }; T3SavedView @["Vw_7"] { }; T3SavedView @["Vw_8"] { }; T3SavedView @["Vw_9"] { }; }; }; }; }; }; DockViewer_List @.docks = [1] { ToolBoxDockViewer @["Tools"] { UserDataItem_List @*(.user_data_) { UserDataItem @["view_win_lft"] { }; UserDataItem @["view_win_top"] { }; UserDataItem @["view_win_wd"] { }; UserDataItem @["view_win_ht"] { }; UserDataItem @["view_win_iconified"] { }; UserDataItem @["view_visible"] { }; }; }; }; }; }; Network_Group @.networks = [1] { LeabraNetwork @["Network_9"] { UserDataItem_List @*(.user_data_) { UserDataItem @["cos_err"] { }; UserDataItem @["norm_err"] { }; UserDataItem @["ext_rew"] { }; UserDataItem @["minus_output_name"] { }; UserDataItem @["rt_cycles"] { }; UserDataItem @["tot_cycle"] { }; UserDataItem @["phase"] { }; UserDataItem @["quarter"] { }; UserDataItem @["sse"] { }; UserDataItem @["output_name"] { }; UserDataItem @["trial_name"] { }; UserDataItem @["group_name"] { }; UserDataItem @["total_trials"] { }; UserDataItem @["time"] { }; UserDataItem @["cycle"] { }; UserDataItem @["tick"] { }; UserDataItem @["trial"] { }; UserDataItem @["group"] { }; UserDataItem @["epoch"] { }; UserDataItem @["batch"] { }; }; BaseSpec_Group @.specs = [1] { LeabraLayerSpec @["HiddenLayer"] { BaseSpec_Group @.children = [1] { LeabraLayerSpec @["Input_Output"] { BaseSpec_Group @.children = [0] { }; }; }; }; }; ParamSeq_Group @.param_seqs = [0] { }; Layer_Group @.layers = [0] { }; Weights_List @.weights = [0] { }; }; }; }; LeabraProject .projects["SRN_midterm16"] { name="SRN_midterm16"; desc=; tags=; version { major=0; minor=0; step=0; }; author=; email=; license { license=NO_LIC; owner_name=; org=; year="2011"; custom=; }; pub_cite=; wiki { wiki=; page_name=; }; docs { name="docs"; el_typ=taDoc; el_def=0; taDoc @["Instructions"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["user_pinned"] { name="user_pinned"; value 1 0=1; val_type_fixed=0; }; }; name="Instructions"; desc=; web_doc=0; wiki=; url="local"; full_url="local"; text_size=1; text="
== Midterm Miniproject: Simple Recurrent Networks (SRNs) == * To start, it is usually a good idea to do Object/Edit Dialog in the menu just above this text, which will open this documentation in a separate window that you can more easily come back to. Alternatively, you can always return by clicking on the Instructions tab at the top of this middle panel. This midterm miniproject has the dual purpose of exposing you to the software -- you will get instructions to build and train the network from scratch -- and exploring the power of simple recurrent networks (SRNs) to learn sequences. We'll see how a network can learn to predict the next item in a sequence depending on its current input (e.g., predict the next word in a sentence based on the current and previous words). As a reminder, this topic is not currently covered as such in the online text, but is covered in the lecture - you may want to refer back to the slides on \"Temporal learning and representation\". Why do we need a special type of network for this? After all, we have seen that networks can learn to associate specific inputs with specific outputs using error-driven and self-organized learning. So if I'm in the middle of an input sequence that I've seen before, then shouldn't a trained network be able to predict the next item easily? Well, it all depends on how complicated the sequence is. ABCDEF is easy -- there's never any ambiguity about what the next letter should be. ABCBDBEBF is not -- it's not clear what the next item should be after a B, unless you look further back in the sequence for some disambiguating context. That's what SRNs use a Context layer for. === Section 1. Simple sequences without context layer. === First we will create a basic network with a simple sequential input and see whether the network can learn this sequence. * Create a new network using the 'wizard' to build a three layer network. You should see a tab at the top of this middle panel called \"LeabraWizard_7\", or you can also access this from the left panel (wizards/LeabraWizard_7/
).
* Now click on the Network
button near the bottom of the wizard panel and select a standard network (StdNetwork
). Click OK to the popup box.
* A second dialog will open that will allow you to specify a some of the network's structure.First set the size for each layer. Set the Input to have 6 units (x=6, y=1), the Hidden layer to have 30 units (e.g. x=6, y=5), and the Output layer to have 6 units (x=6, y=1). Now we need to set up the layer connections by filling in entries in the RecvPrjns column. The Hidden layer (second row) should receive input from the Input layer, but also to learn more efficiently it should receive \"top-down\" input from the Output layer (so that any error signals in the output can change the Hidden pattern of activity so that it is more likely to be correct in subsequent trials). So, enter 'Input Output' into the RecvPrjns column for the Hidden layer row (putting in the two names separated by a space tells the program to connect both of these layers into the Hidden layer). Then, the Output layer should receive input from the Hidden layer (so enter 'Hidden' in RecvPrjns for the Output layer row). Click OK. A new dialog window should pop up asking if you want to create TopDownCons. Click YES then OK. You should see a three-layer network show up on the right-most panel.
* Save your project! It's always a good idea to save as you go along and make progress.
* Next, use the wizard to create the Input and Output data tables. An Input data table specifies which patterns to present to the network (the environment or \"task\"). The Output data tables give us a way to log the performance of the network (e.g., errors, maybe activation values if we want to save those, etc). For more details, see the Emergent tutorial on the course website. Select Data/Std Data
and tell it to create 6 patterns (n_patterns).
* Go to the input data table (data/InputData subgroup/StdInput Data
in the left tree browser) and create some new events. Make a sequence like A B C D E F. This requires filling in input and output matrix values to represent the events. Each value within each matrix represents the activity of the units to present to the network in that layer. So for the \"A\" event, change the first value from 0 to 1 in the input layer and also fill in the trial Name to \"A\". For the \"B\" event (second row in the data table), change the second value from 0 to 1, and so on. The target output for each of these should be the next event in the sequence -- i.e. for the first A event, the Output layer should be set to the event corresponding to B. (Note that what you are setting in the Output will only affect Output layer activities in the network during the outcome phase, i.e., this will serve as the supervised training signal for minimizing error). Go through and set all the events making sure that each successive event uses the same pattern of activity in its Input layer as the previous pattern used in its output. Also, make sure that whenever you name a trial 'B' for example, that the input pattern is the same as the input pattern for any other trials named 'B' (if B is the input pattern that is repeated). I advise having only a single unit active in each event (as in the example above for A and B), otherwise it'll make the network's job more complicated (but feel free to experiment with overlapping multi-unit events once you've got things working well with the single-unit events).
* Create a set of default Leabra programs with the Leabra wizard by clicking on Programs and Std Progs. This will generate programs that are used to repeatedly present the events to the network, to loop over cycles of updating etc.
* Edit LeabraEpoch
and make sure that the trial order is set to SEQUENTIAL (under \"data_loop_order\"). The default is to permute the order of events randomly when training a network, but this is inappropriate in this case because we are specifically interested in studying predictable sequences of patterns.
* You are now ready to train the network. In the left panel, click on LeabraTrain
which is the program to train a network (it will initialize weights, and then call the LeabraEpoch program to present all the training events to the Network, and do so repeatedly until error is reduced. Important: set the \"input_data\" field in this program to \"StdInputData\" (the table in which you entered in the different events) -- this is what tells the train program to use these specific input data, and *not* \"train_env\" which is currently empty but we will use later. Then click Init to initialize the weights and then Run on this program. You should see the events that you created being presented to the network.
* To see if it learned, click on data> OutputData>EpochOutputData
in the left panel. You will see this table filled in with statistics about the network's performance, like the average sum of squared error and the count of the number of errors made for each epoch. But instead of looking at these numbers, we want to graph it. From this same EpochOutputData table, click the \"View\" menu at the top right, and then click \"New graph view\" and finally, hit OK in the dialog box. You should see the learning curve pop up on the network view.
Duplicate
function that can be applied to just about any object in Emergent.
* In data/InputData subgroup
, click on StdInputData
. Then Ctrl-click (if using a Mac) or right-mouse (if using a PC) click on it again, and select Duplicate
. You will see a new data table that is just a copy of the first one. Click on the Properties button and then type in a new name for the data table (like \"LongSequenceInputData\"). Now create your new sequence data.
Note: you can add and remove rows if you select a row by clicking on the number at the left side and then right clicking to select what you want to do (e.g. remove, insert...)
* To make sure that our training takes place on the new input data table we created, edit the LeabraTrain
program so that its input_data
field is set to \"LongSequenceInputData\", or whatever you named the new data table.
* Now go ahead and run your model. If it takes too long you can just Stop
it.
wizards/LeabraWizard_7
, click on Network
and select SRNContext
. This will automatically produce a context layer that is the same size as our Hidden layer. It will stack the context layer up at the top of the viewer, and it won't look like the example network we were showing in class.
To fix this (if it bothers you), use the red arrow tool to drag the context layer to the position in the lower right of the viewer that you may be more familiar with. (The position of course doesn't make any difference, only just the patterns of connectivity do). Alternatively you can click on the layer and adjust the position in x,y,z coordinates on the purple panel -- e.g. change the x position to be 5, and the y and z positions to be the same as that of the Hidden layer.
* Train the network again. It is a good idea to get a sense of the variability of learning too, because due to randomness in the initial weights, some networks will learn faster than others. You should first allow the network to go all the way to at least 500 epochs (some can be slow to learn - the SRN is far from perfect), and then also run a batch of networks rather than just a single one. You can do this by going to the LeabraBatchProgram and hitting Init and Run there instead of the LeabraTrainProgram. If you let it go (I would recommend turning off the Network display to speed things up), it will run a batch of 10 networks. You can then look at the graph, or check the EpochOutput data table to see how many networks learned (got to 0 errors for two epochs in a row) and in how many epochs. The data table will concatenate the network outputs one after the other, and if one network learns in say 50 epochs, the 51st row will be the first epoch for the second network (which might take , say 400 epochs, and so on).
You can also do simple statistics to compute and graph the average performance across all networks -- to do this, click on the data> OutputData>EpochOutputData in the left panel, and from there click on the little arrow next to the menu item labled \"DataProc\", and select \"Group Mean SEM\", which will allow you to get the average performance of the networks. A little popup dialog box will appear -- here leave everything as default except change \"gp_col1\" to \"epoch\". That will tell emergent to take the mean (and other statistics like standard error) of each network's performance for each epoch of training, and store it in a new data table. Click OK. Now, you can find a new data table under data> AnalysisData>EpochOutputData_Group. If you open that you can see a column labeled \"avg_sse_mean\" which will give you the average error across all 10 networks in the batch for each epoch ('epoch group'). If you want you can graph this by selecting View > New Graph View from this new data table. In the resulting graph that shows, you want to make sure it plots what you want to see: change Y1 to \"avg_sse_mean\" so that it plots the average error on the y-axis. (It should already have epochs on the x-axis because this happens to be arranged according to row number). If you want to get a sense of the variability across networks you can scroll to the right of the Y1 field, and check off the box labeled \"Err On\" and then select from the field next to it \"avg_sse_sem\" which will plot the standard error across networks as error bars.
networks/Network_1/CtxtLayerSpec
. The fm_hid
parameter controls the percentage of the context layer activity that will be taken directly from the hidden layer. The fm_prv
parameter controls the percentage of the context layer activity that will be taken from the previous context activity (on the last trial, but again remember that this last trial will in turn be incorporating activity from the trial before that, and so on).
* Edit the CtxtLayerSpec
under networks/Network_1
. You will see that the default is to perfectly copy the hidden layer (fm_hid =1, fm_prv =0). Change these parameters.
networks/Network_1/layers/Hidden
in the left browser panel. Either way will open up the Hidden layer object. Then click on the Monitor Var
button at the bottom of the middle edit panel. In the resulting dialog box, enter \"act\" in the variable
field, and in the net_mon
field, select a trial_net_mon item that writes its data to the correct data table (should be named \"TrialOutputData\").
* This should open up the LeabraTrialMonitor
item in the tree browser, and also it should expand this item so that you see LeabraTrialMonitor/objs/trial_net_mon
, followed by a list of the items that are being monitored.
* Now re-init and re-train your network with LeabraTrain
. Before you do this analysis, wait until the network has learned to zero errors. Check your trial output data table, and make sure that \"Hidden_act\" is one of the columns in that table, and that it gets filled with (matrix)
when you run the train program. If it's not there or doesn't get filled with data, something's wrong, so let us know and we'll try to help you fix it.
* It will also help to give each row of output a name using the 'Name' column. This will help you identify specific trials in the cluster plot you?re about to build.
* In the menu bar at the top, find Data/Analyze
and select Cluster...
from the menu.
* Now you need to fill out several fields in the resulting dialog box in order to produce a cluster plot of Hidden unit activation at the end of each trial. Because you are creating a new cluster plot, leave the top field as \"New Table\". Turn on the View
check-box. Set data_col_nm
to \"Hidden_act\" (so that hidden activation is what gets clustered), and name_col_nm
to \"trial_name\" (so that each point on the plot gets labeled with a trial name). Make sure that src_data
is set to the Output data table that we're interested in, which is a trial output data table (whatever you named it).
avg sse
of .5. To have a view of the grammar we use you can have a look at the lecture slides (BTXSE, BPVPSE, etc).networks/Network_1/layers/Input
). Set un geom x
to 6 and un geom y
to 1. Do the same thing for the Output layer. Again, this change will only have effect after you rebuild the network, so select Build
. In the network view you should see that the input and output layer have new shapes now.
* Now we can generate some sequences using a program that was written to create input data based on this grammar (i.e., instead of you having to click the 1's and 0's manually). In the left browser panel, select programs/InputGeneration/GenData
and click on Run
. This should create a couple of random sequences from the FSA. Examine data/grammar/train_env
to see what patterns were generated. If you Run
the GenData program again, you will see a completely different set of sequences, but in each case they will be generated from the FSA and hence be 'grammatical' under this \"language\" (called the \"Reber\" grammar named after the psychologist Art Reber who studied human abilities to implicitly learn these grammars).
* Optional: If you are programming savvy, you can examine the programs under InputGeneration to get a feel for how you can program the simulator. This could become useful for your final project if you want to do some programming in that case, depending on what is required for your project.
* Next we have to tell emergent to actually use our new data input table. Select programs/LeabraAll_Std/LeabraTrain
and set Input data
to train_env
.
* Train the network by clicking on Init
followed by Run
.
Why do we need a special type of network for this? After all, we have seen that networks can learn to associate specific inputs with specific outputs using error-driven and self-organized learning. So if I'm in the middle of an input sequence that I've seen before, then shouldn't a trained network be able to predict the next item easily? Well, it all depends on how complicated the sequence is. ABCDEF is easy -- there's never any ambiguity about what the next letter should be. ABCBDBEBF is not -- it's not clear what the next item should be after a B, unless you look further back in the sequence for some disambiguating context. That's what SRNs use a Context layer for.
wizards/LeabraWizard_7/
).
Network
button near the bottom of the wizard panel and select a standard network (StdNetwork
). Click OK to the popup box.
Data/Std Data
and tell it to create 6 patterns (n_patterns).
data/InputData subgroup/StdInput Data
in the left tree browser) and create some new events. Make a sequence like A B C D E F. This requires filling in input and output matrix values to represent the events. Each value within each matrix represents the activity of the units to present to the network in that layer. So for the \"A\" event, change the first value from 0 to 1 in the input layer and also fill in the trial Name to \"A\". For the \"B\" event (second row in the data table), change the second value from 0 to 1, and so on. The target output for each of these should be the next event in the sequence -- i.e. for the first A event, the Output layer should be set to the event corresponding to B. (Note that what you are setting in the Output will only affect Output layer activities in the network during the outcome phase, i.e., this will serve as the supervised training signal for minimizing error). Go through and set all the events making sure that each successive event uses the same pattern of activity in its Input layer as the previous pattern used in its output. Also, make sure that whenever you name a trial 'B' for example, that the input pattern is the same as the input pattern for any other trials named 'B' (if B is the input pattern that is repeated). I advise having only a single unit active in each event (as in the example above for A and B), otherwise it'll make the network's job more complicated (but feel free to experiment with overlapping multi-unit events once you've got things working well with the single-unit events).
LeabraEpoch
and make sure that the trial order is set to SEQUENTIAL (under \"data_loop_order\"). The default is to permute the order of events randomly when training a network, but this is inappropriate in this case because we are specifically interested in studying predictable sequences of patterns.
LeabraTrain
which is the program to train a network (it will initialize weights, and then call the LeabraEpoch program to present all the training events to the Network, and do so repeatedly until error is reduced. Important: set the \"input_data\" field in this program to \"StdInputData\" (the table in which you entered in the different events) -- this is what tells the train program to use these specific input data, and *not* \"train_env\" which is currently empty but we will use later. Then click Init to initialize the weights and then Run on this program. You should see the events that you created being presented to the network.
data> OutputData>EpochOutputData
in the left panel. You will see this table filled in with statistics about the network's performance, like the average sum of squared error and the count of the number of errors made for each epoch. But instead of looking at these numbers, we want to graph it. From this same EpochOutputData table, click the \"View\" menu at the top right, and then click \"New graph view\" and finally, hit OK in the dialog box. You should see the learning curve pop up on the network view.
Now we'll try making longer sequences with first order dependencies (e.g. ABCBD) and see if this standard hidden-layer model can solve this task.
One thing that's good to do so that you can compare variations of a model is to make multiple input data tables. (you can also create multiple epoch output tables but we'll leave that for now). That way, you can easily run the network using either of the input data tables. You can do this easily with the Duplicate
function that can be applied to just about any object in Emergent.
data/InputData subgroup
, click on StdInputData
. Then Ctrl-click (if using a Mac) or right-mouse (if using a PC) click on it again, and select Duplicate
. You will see a new data table that is just a copy of the first one. Click on the Properties button and then type in a new name for the data table (like \"LongSequenceInputData\"). Now create your new sequence data.
Note: you can add and remove rows if you select a row by clicking on the number at the left side and then right clicking to select what you want to do (e.g. remove, insert...) LeabraTrain
program so that its input_data
field is set to \"LongSequenceInputData\", or whatever you named the new data table.
Stop
it.
wizards/LeabraWizard_7
, click on Network
and select SRNContext
. This will automatically produce a context layer that is the same size as our Hidden layer. It will stack the context layer up at the top of the viewer, and it won't look like the example network we were showing in class.
To fix this (if it bothers you), use the red arrow tool to drag the context layer to the position in the lower right of the viewer that you may be more familiar with. (The position of course doesn't make any difference, only just the patterns of connectivity do). Alternatively you can click on the layer and adjust the position in x,y,z coordinates on the purple panel -- e.g. change the x position to be 5, and the y and z positions to be the same as that of the Hidden layer.You can also do simple statistics to compute and graph the average performance across all networks -- to do this, click on the data> OutputData>EpochOutputData in the left panel, and from there click on the little arrow next to the menu item labled \"DataProc\", and select \"Group Mean SEM\", which will allow you to get the average performance of the networks. A little popup dialog box will appear -- here leave everything as default except change \"gp_col1\" to \"epoch\". That will tell emergent to take the mean (and other statistics like standard error) of each network's performance for each epoch of training, and store it in a new data table. Click OK. Now, you can find a new data table under data> AnalysisData>EpochOutputData_Group. If you open that you can see a column labeled \"avg_sse_mean\" which will give you the average error across all 10 networks in the batch for each epoch ('epoch group'). If you want you can graph this by selecting View > New Graph View from this new data table. In the resulting graph that shows, you want to make sure it plots what you want to see: change Y1 to \"avg_sse_mean\" so that it plots the average error on the y-axis. (It should already have epochs on the x-axis because this happens to be arranged according to row number). If you want to get a sense of the variability across networks you can scroll to the right of the Y1 field, and check off the box labeled \"Err On\" and then select from the field next to it \"avg_sse_sem\" which will plot the standard error across networks as error bars.
The example sequence A B C D B E F only has first order dependencies because you would only have to remember the very last item before the repeated item to answer correctly. A sequence with second order dependencies could look like this: A B C D B C E F (to predict E when given C it is not sufficient to keep remember the previous B trial, because that is the same as earlier in the sequence -- you need to know that the BC sequence was preceded by D -- ie. two trials back). Likewise, a third order dependency would be something like A B C D E B C D F.
In order for the network to do better at remembering second and third order dependencies we can change the rate at which the context layer takes information from the hidden layer. Although we said that it \"copies\" the previous hidden layer activity, this is actually a 'special case' of the SRN, and this function can easily be altered so that the context layer activities reflect part of the previous hidden layer activity but also part of the previous context activity itself (i.e. so it is more likely to hold onto information from history).
This is controlled by parameters named 'updt.fm_hid' and 'updt.fm_prv' in the networks/Network_1/CtxtLayerSpec
. The fm_hid
parameter controls the percentage of the context layer activity that will be taken directly from the hidden layer. The fm_prv
parameter controls the percentage of the context layer activity that will be taken from the previous context activity (on the last trial, but again remember that this last trial will in turn be incorporating activity from the trial before that, and so on).
CtxtLayerSpec
under networks/Network_1
. You will see that the default is to perfectly copy the hidden layer (fm_hid =1, fm_prv =0). Change these parameters.
Now we will take a look at what the Hidden layer units are representing, by adding a column in the OutputData that keeps track of the activity and then creating a cluster plot of Hidden unit activations across trials within an epoch.
networks/Network_1/layers/Hidden
in the left browser panel. Either way will open up the Hidden layer object. Then click on the Monitor Var
button at the bottom of the middle edit panel. In the resulting dialog box, enter \"act\" in the variable
field, and in the net_mon
field, select a trial_net_mon item that writes its data to the correct data table (should be named \"TrialOutputData\").
LeabraTrialMonitor
item in the tree browser, and also it should expand this item so that you see LeabraTrialMonitor/objs/trial_net_mon
, followed by a list of the items that are being monitored.
LeabraTrain
. Before you do this analysis, wait until the network has learned to zero errors. Check your trial output data table, and make sure that \"Hidden_act\" is one of the columns in that table, and that it gets filled with (matrix)
when you run the train program. If it's not there or doesn't get filled with data, something's wrong, so let us know and we'll try to help you fix it.
Data/Analyze
and select Cluster...
from the menu.
View
check-box. Set data_col_nm
to \"Hidden_act\" (so that hidden activation is what gets clustered), and name_col_nm
to \"trial_name\" (so that each point on the plot gets labeled with a trial name). Make sure that src_data
is set to the Output data table that we're interested in, which is a trial output data table (whatever you named it).
avg sse
of .5. To have a view of the grammar we use you can have a look at the lecture slides (BTXSE, BPVPSE, etc).networks/Network_1/layers/Input
). Set un geom x
to 6 and un geom y
to 1. Do the same thing for the Output layer. Again, this change will only have effect after you rebuild the network, so select Build
. In the network view you should see that the input and output layer have new shapes now.
programs/InputGeneration/GenData
and click on Run
. This should create a couple of random sequences from the FSA. Examine data/grammar/train_env
to see what patterns were generated. If you Run
the GenData program again, you will see a completely different set of sequences, but in each case they will be generated from the FSA and hence be 'grammatical' under this \"language\" (called the \"Reber\" grammar named after the psychologist Art Reber who studied human abilities to implicitly learn these grammars).
programs/LeabraAll_Std/LeabraTrain
and set Input data
to train_env
.
Init
followed by Run
.
"; }; }; wizards { name="wizards"; el_typ=LeabraWizard; el_def=0; LeabraWizard @["LeabraWizard_7"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItemBase; el_def=0; UserDataItem @["NO_CLIP"] { name="NO_CLIP"; value 1 0=1; val_type_fixed=0; }; UserDataItem @["user_pinned"] { name="user_pinned"; value 1 0=1; val_type_fixed=0; }; }; name="LeabraWizard_7"; }; }; ctrl_panels { name="ctrl_panels"; el_typ=ControlPanel; el_def=0; ClusterRun @["ClusterRun"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["user_pinned"] { name="user_pinned"; value 1 0=1; val_type_fixed=0; }; }; name="ClusterRun"; updt_while_running=0; desc=; mbrs { name="mbrs"; el_typ=EditMbrItem; el_def=0; }; mths { name="mths"; el_typ=EditMthItem; el_def=0; group_type=GT_BUTTONS; }; jobs_running { name="jobs_running"; desc=; data { name="data"; el_typ=String_Data; el_def=0; String_Data @["cluster"] { name="cluster"; desc="name of cluster to run job on"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["user"] { name="user"; desc="user who ran this job"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["tag"] { name="tag"; desc="unique tag id for this job -- all files etc are named according to this tag"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["status"] { name="status"; desc="status of job: REQUESTED, CANCELLED, SUBMITTED, QUEUED, RUNNING, DONE, KILLED"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["label"] { name="label"; desc="label for the job -- a brief description that you can use to label this job's results on your graph -- in general notes should have more general info and then label should JUST describe what is unique about the current run"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["notes"] { name="notes"; desc="notes for the job -- describe any specific information about the model configuration etc -- can use this for searching and sorting results"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["filename"] { name="filename"; desc="name of the specific project used for this job -- because multiple versions of a model are often run under the same project name"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["params"] { name="params"; desc="emergent parameters based on currently selected items in the ClusterRun"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["status_info"] { name="status_info"; desc="more detailed information about status"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["submit_time"] { name="submit_time"; desc="when was the job submitted (tracks time from emergent client submission)"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["start_time"] { name="start_time"; desc="when did the job actually start running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["end_time"] { name="end_time"; desc="when did the job finish running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["running_time"] { name="running_time"; desc="total running time in days/hours/minutes"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_no"] { name="job_no"; desc="job number on cluster -- assigned once the job is submitted to the cluster"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_out"] { name="job_out"; desc="job output information -- contains (top of) the job standard output and standard error output as the job is running (truncated to top 2048 characters if longer than that) -- full information available in job_out_file"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_out_file"] { name="job_out_file"; desc="job output file -- file name containing full job output information -- file name should be tag.out"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["dat_files"] { name="dat_files"; desc="list of data table output (results) files generated by model (space separated) -- these files have the tag in their name, and end in .dat"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["other_files"] { name="other_files"; desc="list of other output (results) files generated by model (space separated) -- these files have the tag in their name but do not end in .dat"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["command_id"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="command_id"; desc="id for this command, assigned by the search algorithm in an algorithm-specific manner (optional)"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["command"] { name="command"; desc="emergent command line, up to point of parameters"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["repo_url"] { name="repo_url"; desc="name of repository to run job on"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["queue"] { name="queue"; desc="if specified, indicate a particular queue on the computing resource"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["run_time"] { name="run_time"; desc="how long will the jobs take to run -- syntax is number followed by unit indicator -- m=minutes, h=hours, d=days -- e.g., 30m, 12h, or 2d -- typically the job will be killed if it exceeds this amount of time, so be sure to not underestimate"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["ram_gb"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="ram_gb"; desc="how many gigabytes of ram is required? 0 means do not specify this parameter for the job submission -- for large memory jobs, it can be important to specify this to ensure proper allocation of resources"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["n_threads"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="n_threads"; desc="number of parallel threads to use for running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["mpi_nodes"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="mpi_nodes"; desc="number of physical nodes to use for mpi run -- 0 or -1 means not to use mpi"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["mpi_per_node"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="mpi_per_node"; desc="number of processes to use per MPI node to use for mpi run - total nodes is mpi_nodes * mpi_per_node"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["pb_batches"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="pb_batches"; desc="if > 0, use parallel batch mode with this number of batches"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["pb_nodes"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="pb_nodes"; desc="actually pb_n_batches_per -- re-using this parameter that was previously used for a different purpose -- number of batches to run sequentially within a single job"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["submit_svn"] { name="submit_svn"; desc="svn revision for the original job submission"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["submit_job"] { name="submit_job"; desc="index of job number within a given submission -- equal to the row number of the original set of jobs submitted in submit_svn jobs"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["done_svn"] { name="done_svn"; desc="svn revision when this job was moved from running to done -- this will contain full set of files generated when running -- for deleted jobs can also recover to this"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["last_svn"] { name="last_svn"; desc="last svn revision for command submission that affected this job in some significant way -- for deleted jobs, this is the svn revision that we recover to"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; }; data_flags=AUTO_CALC; auto_load=NO_AUTO_LOAD; auto_load_file=; row_height=0; keygen 4 0=0; last_sort_spec { name="last_sort_spec"; ops { name="ops"; el_typ=DataSortEl; el_def=0; }; }; control_panel_cells { name="control_panel_cells"; el_typ=DataTableCell; el_def=0; }; }; jobs_done { name="jobs_done"; desc=; data { name="data"; el_typ=String_Data; el_def=0; String_Data @["cluster"] { name="cluster"; desc="name of cluster to run job on"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["user"] { name="user"; desc="user who ran this job"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["tag"] { name="tag"; desc="unique tag id for this job -- all files etc are named according to this tag"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["status"] { name="status"; desc="status of job: REQUESTED, CANCELLED, SUBMITTED, QUEUED, RUNNING, DONE, KILLED"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["label"] { name="label"; desc="label for the job -- a brief description that you can use to label this job's results on your graph -- in general notes should have more general info and then label should JUST describe what is unique about the current run"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["notes"] { name="notes"; desc="notes for the job -- describe any specific information about the model configuration etc -- can use this for searching and sorting results"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["filename"] { name="filename"; desc="name of the specific project used for this job -- because multiple versions of a model are often run under the same project name"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["params"] { name="params"; desc="emergent parameters based on currently selected items in the ClusterRun"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["status_info"] { name="status_info"; desc="more detailed information about status"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["submit_time"] { name="submit_time"; desc="when was the job submitted (tracks time from emergent client submission)"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["start_time"] { name="start_time"; desc="when did the job actually start running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["end_time"] { name="end_time"; desc="when did the job finish running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["running_time"] { name="running_time"; desc="total running time in days/hours/minutes"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_no"] { name="job_no"; desc="job number on cluster -- assigned once the job is submitted to the cluster"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_out"] { name="job_out"; desc="job output information -- contains (top of) the job standard output and standard error output as the job is running (truncated to top 2048 characters if longer than that) -- full information available in job_out_file"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_out_file"] { name="job_out_file"; desc="job output file -- file name containing full job output information -- file name should be tag.out"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["dat_files"] { name="dat_files"; desc="list of data table output (results) files generated by model (space separated) -- these files have the tag in their name, and end in .dat"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["other_files"] { name="other_files"; desc="list of other output (results) files generated by model (space separated) -- these files have the tag in their name but do not end in .dat"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["command_id"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="command_id"; desc="id for this command, assigned by the search algorithm in an algorithm-specific manner (optional)"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["command"] { name="command"; desc="emergent command line, up to point of parameters"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["repo_url"] { name="repo_url"; desc="name of repository to run job on"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["queue"] { name="queue"; desc="if specified, indicate a particular queue on the computing resource"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["run_time"] { name="run_time"; desc="how long will the jobs take to run -- syntax is number followed by unit indicator -- m=minutes, h=hours, d=days -- e.g., 30m, 12h, or 2d -- typically the job will be killed if it exceeds this amount of time, so be sure to not underestimate"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["ram_gb"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="ram_gb"; desc="how many gigabytes of ram is required? 0 means do not specify this parameter for the job submission -- for large memory jobs, it can be important to specify this to ensure proper allocation of resources"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["n_threads"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="n_threads"; desc="number of parallel threads to use for running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["mpi_nodes"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="mpi_nodes"; desc="number of physical nodes to use for mpi run -- 0 or -1 means not to use mpi"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["mpi_per_node"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="mpi_per_node"; desc="number of processes to use per MPI node to use for mpi run - total nodes is mpi_nodes * mpi_per_node"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["pb_batches"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="pb_batches"; desc="if > 0, use parallel batch mode with this number of batches"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["pb_nodes"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="pb_nodes"; desc="actually pb_n_batches_per -- re-using this parameter that was previously used for a different purpose -- number of batches to run sequentially within a single job"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["submit_svn"] { name="submit_svn"; desc="svn revision for the original job submission"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["submit_job"] { name="submit_job"; desc="index of job number within a given submission -- equal to the row number of the original set of jobs submitted in submit_svn jobs"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["done_svn"] { name="done_svn"; desc="svn revision when this job was moved from running to done -- this will contain full set of files generated when running -- for deleted jobs can also recover to this"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["last_svn"] { name="last_svn"; desc="last svn revision for command submission that affected this job in some significant way -- for deleted jobs, this is the svn revision that we recover to"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; }; data_flags=AUTO_CALC; auto_load=NO_AUTO_LOAD; auto_load_file=; row_height=0; keygen 4 0=0; last_sort_spec { name="last_sort_spec"; ops { name="ops"; el_typ=DataSortEl; el_def=0; }; }; control_panel_cells { name="control_panel_cells"; el_typ=DataTableCell; el_def=0; }; }; jobs_deleted { name="jobs_deleted"; desc=; data { name="data"; el_typ=String_Data; el_def=0; String_Data @["cluster"] { name="cluster"; desc="name of cluster to run job on"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["user"] { name="user"; desc="user who ran this job"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["tag"] { name="tag"; desc="unique tag id for this job -- all files etc are named according to this tag"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["status"] { name="status"; desc="status of job: REQUESTED, CANCELLED, SUBMITTED, QUEUED, RUNNING, DONE, KILLED"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["label"] { name="label"; desc="label for the job -- a brief description that you can use to label this job's results on your graph -- in general notes should have more general info and then label should JUST describe what is unique about the current run"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["notes"] { name="notes"; desc="notes for the job -- describe any specific information about the model configuration etc -- can use this for searching and sorting results"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["filename"] { name="filename"; desc="name of the specific project used for this job -- because multiple versions of a model are often run under the same project name"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["params"] { name="params"; desc="emergent parameters based on currently selected items in the ClusterRun"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["status_info"] { name="status_info"; desc="more detailed information about status"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["submit_time"] { name="submit_time"; desc="when was the job submitted (tracks time from emergent client submission)"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["start_time"] { name="start_time"; desc="when did the job actually start running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["end_time"] { name="end_time"; desc="when did the job finish running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["running_time"] { name="running_time"; desc="total running time in days/hours/minutes"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_no"] { name="job_no"; desc="job number on cluster -- assigned once the job is submitted to the cluster"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_out"] { name="job_out"; desc="job output information -- contains (top of) the job standard output and standard error output as the job is running (truncated to top 2048 characters if longer than that) -- full information available in job_out_file"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_out_file"] { name="job_out_file"; desc="job output file -- file name containing full job output information -- file name should be tag.out"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["dat_files"] { name="dat_files"; desc="list of data table output (results) files generated by model (space separated) -- these files have the tag in their name, and end in .dat"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["other_files"] { name="other_files"; desc="list of other output (results) files generated by model (space separated) -- these files have the tag in their name but do not end in .dat"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["command_id"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="command_id"; desc="id for this command, assigned by the search algorithm in an algorithm-specific manner (optional)"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["command"] { name="command"; desc="emergent command line, up to point of parameters"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["repo_url"] { name="repo_url"; desc="name of repository to run job on"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["queue"] { name="queue"; desc="if specified, indicate a particular queue on the computing resource"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["run_time"] { name="run_time"; desc="how long will the jobs take to run -- syntax is number followed by unit indicator -- m=minutes, h=hours, d=days -- e.g., 30m, 12h, or 2d -- typically the job will be killed if it exceeds this amount of time, so be sure to not underestimate"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["ram_gb"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="ram_gb"; desc="how many gigabytes of ram is required? 0 means do not specify this parameter for the job submission -- for large memory jobs, it can be important to specify this to ensure proper allocation of resources"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["n_threads"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="n_threads"; desc="number of parallel threads to use for running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["mpi_nodes"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="mpi_nodes"; desc="number of physical nodes to use for mpi run -- 0 or -1 means not to use mpi"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["mpi_per_node"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="mpi_per_node"; desc="number of processes to use per MPI node to use for mpi run - total nodes is mpi_nodes * mpi_per_node"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["pb_batches"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="pb_batches"; desc="if > 0, use parallel batch mode with this number of batches"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["pb_nodes"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="pb_nodes"; desc="actually pb_n_batches_per -- re-using this parameter that was previously used for a different purpose -- number of batches to run sequentially within a single job"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["submit_svn"] { name="submit_svn"; desc="svn revision for the original job submission"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["submit_job"] { name="submit_job"; desc="index of job number within a given submission -- equal to the row number of the original set of jobs submitted in submit_svn jobs"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["done_svn"] { name="done_svn"; desc="svn revision when this job was moved from running to done -- this will contain full set of files generated when running -- for deleted jobs can also recover to this"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["last_svn"] { name="last_svn"; desc="last svn revision for command submission that affected this job in some significant way -- for deleted jobs, this is the svn revision that we recover to"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; }; data_flags=AUTO_CALC; auto_load=NO_AUTO_LOAD; auto_load_file=; row_height=0; keygen 4 0=0; last_sort_spec { name="last_sort_spec"; ops { name="ops"; el_typ=DataSortEl; el_def=0; }; }; control_panel_cells { name="control_panel_cells"; el_typ=DataTableCell; el_def=0; }; }; jobs_archive { name="jobs_archive"; desc=; data { name="data"; el_typ=String_Data; el_def=0; String_Data @["cluster"] { name="cluster"; desc="name of cluster to run job on"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["user"] { name="user"; desc="user who ran this job"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["tag"] { name="tag"; desc="unique tag id for this job -- all files etc are named according to this tag"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["status"] { name="status"; desc="status of job: REQUESTED, CANCELLED, SUBMITTED, QUEUED, RUNNING, DONE, KILLED"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["label"] { name="label"; desc="label for the job -- a brief description that you can use to label this job's results on your graph -- in general notes should have more general info and then label should JUST describe what is unique about the current run"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["notes"] { name="notes"; desc="notes for the job -- describe any specific information about the model configuration etc -- can use this for searching and sorting results"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["filename"] { name="filename"; desc="name of the specific project used for this job -- because multiple versions of a model are often run under the same project name"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["params"] { name="params"; desc="emergent parameters based on currently selected items in the ClusterRun"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["status_info"] { name="status_info"; desc="more detailed information about status"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["submit_time"] { name="submit_time"; desc="when was the job submitted (tracks time from emergent client submission)"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["start_time"] { name="start_time"; desc="when did the job actually start running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["end_time"] { name="end_time"; desc="when did the job finish running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["running_time"] { name="running_time"; desc="total running time in days/hours/minutes"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_no"] { name="job_no"; desc="job number on cluster -- assigned once the job is submitted to the cluster"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_out"] { name="job_out"; desc="job output information -- contains (top of) the job standard output and standard error output as the job is running (truncated to top 2048 characters if longer than that) -- full information available in job_out_file"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_out_file"] { name="job_out_file"; desc="job output file -- file name containing full job output information -- file name should be tag.out"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["dat_files"] { name="dat_files"; desc="list of data table output (results) files generated by model (space separated) -- these files have the tag in their name, and end in .dat"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["other_files"] { name="other_files"; desc="list of other output (results) files generated by model (space separated) -- these files have the tag in their name but do not end in .dat"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["command_id"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="command_id"; desc="id for this command, assigned by the search algorithm in an algorithm-specific manner (optional)"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["command"] { name="command"; desc="emergent command line, up to point of parameters"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["repo_url"] { name="repo_url"; desc="name of repository to run job on"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["queue"] { name="queue"; desc="if specified, indicate a particular queue on the computing resource"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["run_time"] { name="run_time"; desc="how long will the jobs take to run -- syntax is number followed by unit indicator -- m=minutes, h=hours, d=days -- e.g., 30m, 12h, or 2d -- typically the job will be killed if it exceeds this amount of time, so be sure to not underestimate"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["ram_gb"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="ram_gb"; desc="how many gigabytes of ram is required? 0 means do not specify this parameter for the job submission -- for large memory jobs, it can be important to specify this to ensure proper allocation of resources"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["n_threads"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="n_threads"; desc="number of parallel threads to use for running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["mpi_nodes"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="mpi_nodes"; desc="number of physical nodes to use for mpi run -- 0 or -1 means not to use mpi"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["mpi_per_node"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="mpi_per_node"; desc="number of processes to use per MPI node to use for mpi run - total nodes is mpi_nodes * mpi_per_node"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["pb_batches"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="pb_batches"; desc="if > 0, use parallel batch mode with this number of batches"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; int_Data @["pb_nodes"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItem; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="pb_nodes"; desc="actually pb_n_batches_per -- re-using this parameter that was previously used for a different purpose -- number of batches to run sequentially within a single job"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["submit_svn"] { name="submit_svn"; desc="svn revision for the original job submission"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["submit_job"] { name="submit_job"; desc="index of job number within a given submission -- equal to the row number of the original set of jobs submitted in submit_svn jobs"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["done_svn"] { name="done_svn"; desc="svn revision when this job was moved from running to done -- this will contain full set of files generated when running -- for deleted jobs can also recover to this"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["last_svn"] { name="last_svn"; desc="last svn revision for command submission that affected this job in some significant way -- for deleted jobs, this is the svn revision that we recover to"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; }; data_flags=AUTO_CALC; auto_load=NO_AUTO_LOAD; auto_load_file=; row_height=0; keygen 4 0=0; last_sort_spec { name="last_sort_spec"; ops { name="ops"; el_typ=DataSortEl; el_def=0; }; }; control_panel_cells { name="control_panel_cells"; el_typ=DataTableCell; el_def=0; }; }; file_list { name="file_list"; desc=; data { name="data"; el_typ=String_Data; el_def=0; String_Data @["cluster"] { name="cluster"; desc="cluster where this job was submitted / run"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["user"] { name="user"; desc="user who ran this job"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["file_name"] { name="file_name"; desc="name of file -- does not include any path information"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["tag"] { name="tag"; desc="job tag associated with this file"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["size"] { name="size"; desc="size of file -- with typical suffixes (K = kilobytes, M = megabytes, G = gigabytes)"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["kind"] { name="kind"; desc="type of file"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["date_modified"] { name="date_modified"; desc="timestamp for when the file was last modified"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["date_created"] { name="date_created"; desc="timestamp for when the file was first created"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["svn_file_path"] { name="svn_file_path"; desc="path to file in SVN repository, relative to root of svn_repo repository"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["proj_file_path"] { name="proj_file_path"; desc="path to file relative to the parent project directory -- e.g., results/filename.dat"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["file_path"] { name="file_path"; desc="full path to file on local file system, including all parent directories and name of file -- takes you directly to the file"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; }; data_flags=AUTO_CALC; auto_load=NO_AUTO_LOAD; auto_load_file=; row_height=0; keygen 4 0=0; last_sort_spec { name="last_sort_spec"; ops { name="ops"; el_typ=DataSortEl; el_def=0; }; }; control_panel_cells { name="control_panel_cells"; el_typ=DataTableCell; el_def=0; }; }; cluster_info { name="cluster_info"; desc=; data { name="data"; el_typ=String_Data; el_def=0; String_Data @["queue"] { name="queue"; desc="queue that this info relates to"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["job_no"] { name="job_no"; desc="job number or total number of actve jobs"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["user"] { name="user"; desc="user name"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["state"] { name="state"; desc="current scheduler state -- or description of global state info"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["procs"] { name="procs"; desc="number of processors for this job or for global state info"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; String_Data @["start_time"] { name="start_time"; desc="timestamp for when the job was submitted or started running"; col_flags=SAVE_DATA|READ_ONLY; is_matrix=0; cell_geom{ }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; }; }; data_flags=AUTO_CALC; auto_load=NO_AUTO_LOAD; auto_load_file=; row_height=0; keygen 4 0=0; last_sort_spec { name="last_sort_spec"; ops { name="ops"; el_typ=DataSortEl; el_def=0; }; }; control_panel_cells { name="control_panel_cells"; el_typ=DataTableCell; el_def=0; }; }; search_algos { name="search_algos"; el_typ=ParamSearchAlgo; el_def=0; }; use_search_algo=0; cur_search_algo=NULL; set_proj_name=0; proj_name=; auto_updt_interval=10; auto_updt_timeout=30; cluster=; clusters=; users=; last_submit_time=; notes=; label=; extra_files=; svn_repo=; repo_url=; queue=; run_time=; exe_cmd="emergent"; ram_gb=0; n_threads=1; use_mpi=0; mpi_nodes=10; mpi_per_node=1; parallel_batch=0; pb_batches=10; pb_n_batches_per=1; nowin_x=0; enable_kill=0; enable_load=0; enable_notes=0; }; }; param_sets { name="param_sets"; el_typ=ParamSet; el_def=0; }; data { name="data"; el_typ=DataTable; el_def=0; save_tables=1; DataTable_Group @.gp["InputData"] { name="InputData"; el_typ=DataTable; el_def=0; save_tables=1; }; DataTable_Group @.gp["OutputData"] { name="OutputData"; el_typ=DataTable; el_def=0; save_tables=1; }; DataTable_Group @.gp["AnalysisData"] { name="AnalysisData"; el_typ=DataTable; el_def=0; save_tables=1; }; DataTable_Group @.gp["grammar"] { name="grammar"; el_typ=DataTable; el_def=0; save_tables=1; DataTable @["train_env"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItemBase; el_def=0; UserDataItem @["N_ROWS"] { name="N_ROWS"; value 2 0=5; val_type_fixed=0; }; }; name="train_env"; desc=; data { name="data"; el_typ=String_Data; el_def=0; String_Data @["Group"] { name="Group"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [210] "Seq_0";"Seq_0";"Seq_0";"Seq_0";"Seq_1";"Seq_1";"Seq_1";"Seq_1";"Seq_1";"Seq_1"; "Seq_2";"Seq_2";"Seq_2";"Seq_2";"Seq_2";"Seq_2";"Seq_2";"Seq_2";"Seq_2";"Seq_2"; "Seq_2";"Seq_2";"Seq_2";"Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_3"; "Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_3"; "Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_3";"Seq_4";"Seq_4";"Seq_4"; "Seq_4";"Seq_4";"Seq_5";"Seq_5";"Seq_5";"Seq_5";"Seq_5";"Seq_5";"Seq_5";"Seq_5"; "Seq_5";"Seq_5";"Seq_5";"Seq_5";"Seq_6";"Seq_6";"Seq_6";"Seq_6";"Seq_6";"Seq_6"; "Seq_6";"Seq_6";"Seq_6";"Seq_7";"Seq_7";"Seq_7";"Seq_7";"Seq_7";"Seq_7";"Seq_8"; "Seq_8";"Seq_8";"Seq_8";"Seq_8";"Seq_9";"Seq_9";"Seq_9";"Seq_9";"Seq_9";"Seq_9"; "Seq_9";"Seq_9";"Seq_9";"Seq_10";"Seq_10";"Seq_10";"Seq_10";"Seq_10";"Seq_10";"Seq_10"; "Seq_10";"Seq_10";"Seq_10";"Seq_11";"Seq_11";"Seq_11";"Seq_11";"Seq_11";"Seq_11";"Seq_11"; "Seq_11";"Seq_11";"Seq_11";"Seq_11";"Seq_11";"Seq_11";"Seq_11";"Seq_11";"Seq_11";"Seq_11"; "Seq_11";"Seq_11";"Seq_11";"Seq_11";"Seq_11";"Seq_12";"Seq_12";"Seq_12";"Seq_12";"Seq_12"; "Seq_12";"Seq_12";"Seq_13";"Seq_13";"Seq_13";"Seq_13";"Seq_14";"Seq_14";"Seq_14";"Seq_14"; "Seq_14";"Seq_14";"Seq_14";"Seq_14";"Seq_14";"Seq_14";"Seq_15";"Seq_15";"Seq_15";"Seq_15"; "Seq_15";"Seq_15";"Seq_15";"Seq_15";"Seq_15";"Seq_16";"Seq_16";"Seq_16";"Seq_16";"Seq_16"; "Seq_17";"Seq_17";"Seq_17";"Seq_17";"Seq_17";"Seq_18";"Seq_18";"Seq_18";"Seq_18";"Seq_19"; "Seq_19";"Seq_19";"Seq_19";"Seq_19";"Seq_19";"Seq_19";"Seq_19";"Seq_19";"Seq_19";"Seq_19"; "Seq_20";"Seq_20";"Seq_20";"Seq_20";"Seq_20";"Seq_21";"Seq_21";"Seq_21";"Seq_21";"Seq_22"; "Seq_22";"Seq_22";"Seq_22";"Seq_22";"Seq_22";"Seq_22";"Seq_22";"Seq_23";"Seq_23";"Seq_23"; "Seq_23";"Seq_23";"Seq_23";"Seq_23";"Seq_23";"Seq_23";"Seq_24";"Seq_24";"Seq_24";"Seq_24"; }; }; String_Data @["Name"] { name="Name"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [210] "B->P_0->2";"P->V_2->4";"V->V_4->5";"V->E_5->0";"B->P_0->2";"P->T_2->2";"T->V_2->4";"V->P_4->3";"P->S_3->5";"S->E_5->0"; "B->P_0->2";"P->T_2->2";"T->T_2->2";"T->V_2->4";"V->P_4->3";"P->X_3->2";"X->T_2->2";"T->T_2->2";"T->T_2->2";"T->T_2->2"; "T->V_2->4";"V->V_4->5";"V->E_5->0";"B->P_0->2";"P->T_2->2";"T->T_2->2";"T->T_2->2";"T->T_2->2";"T->T_2->2";"T->T_2->2"; "T->V_2->4";"V->P_4->3";"P->X_3->2";"X->T_2->2";"T->T_2->2";"T->T_2->2";"T->T_2->2";"T->V_2->4";"V->P_4->3";"P->X_3->2"; "X->T_2->2";"T->T_2->2";"T->T_2->2";"T->T_2->2";"T->V_2->4";"V->V_4->5";"V->E_5->0";"B->P_0->2";"P->V_2->4";"V->P_4->3"; "P->S_3->5";"S->E_5->0";"B->T_0->1";"T->S_1->1";"S->X_1->3";"X->X_3->2";"X->V_2->4";"V->P_4->3";"P->X_3->2";"X->T_2->2"; "T->V_2->4";"V->P_4->3";"P->S_3->5";"S->E_5->0";"B->T_0->1";"T->S_1->1";"S->X_1->3";"X->X_3->2";"X->T_2->2";"T->V_2->4"; "V->P_4->3";"P->S_3->5";"S->E_5->0";"B->P_0->2";"P->T_2->2";"T->V_2->4";"V->P_4->3";"P->S_3->5";"S->E_5->0";"B->P_0->2"; "P->T_2->2";"T->V_2->4";"V->V_4->5";"V->E_5->0";"B->T_0->1";"T->X_1->3";"X->X_3->2";"X->V_2->4";"V->P_4->3";"P->X_3->2"; "X->V_2->4";"V->V_4->5";"V->E_5->0";"B->P_0->2";"P->V_2->4";"V->P_4->3";"P->X_3->2";"X->T_2->2";"T->T_2->2";"T->V_2->4"; "V->P_4->3";"P->S_3->5";"S->E_5->0";"B->P_0->2";"P->V_2->4";"V->P_4->3";"P->X_3->2";"X->T_2->2";"T->T_2->2";"T->V_2->4"; "V->P_4->3";"P->X_3->2";"X->T_2->2";"T->T_2->2";"T->T_2->2";"T->T_2->2";"T->T_2->2";"T->T_2->2";"T->T_2->2";"T->T_2->2"; "T->T_2->2";"T->V_2->4";"V->P_4->3";"P->S_3->5";"S->E_5->0";"B->P_0->2";"P->T_2->2";"T->T_2->2";"T->T_2->2";"T->V_2->4"; "V->V_4->5";"V->E_5->0";"B->P_0->2";"P->V_2->4";"V->V_4->5";"V->E_5->0";"B->P_0->2";"P->T_2->2";"T->T_2->2";"T->T_2->2"; "T->V_2->4";"V->P_4->3";"P->X_3->2";"X->V_2->4";"V->V_4->5";"V->E_5->0";"B->T_0->1";"T->X_1->3";"X->X_3->2";"X->T_2->2"; "T->T_2->2";"T->V_2->4";"V->P_4->3";"P->S_3->5";"S->E_5->0";"B->P_0->2";"P->T_2->2";"T->V_2->4";"V->V_4->5";"V->E_5->0"; "B->P_0->2";"P->T_2->2";"T->V_2->4";"V->V_4->5";"V->E_5->0";"B->T_0->1";"T->X_1->3";"X->S_3->5";"S->E_5->0";"B->T_0->1"; "T->S_1->1";"S->S_1->1";"S->S_1->1";"S->S_1->1";"S->X_1->3";"X->X_3->2";"X->T_2->2";"T->V_2->4";"V->V_4->5";"V->E_5->0"; "B->P_0->2";"P->V_2->4";"V->P_4->3";"P->S_3->5";"S->E_5->0";"B->T_0->1";"T->X_1->3";"X->S_3->5";"S->E_5->0";"B->P_0->2"; "P->T_2->2";"T->T_2->2";"T->T_2->2";"T->V_2->4";"V->P_4->3";"P->S_3->5";"S->E_5->0";"B->P_0->2";"P->T_2->2";"T->T_2->2"; "T->V_2->4";"V->P_4->3";"P->X_3->2";"X->V_2->4";"V->V_4->5";"V->E_5->0";"B->P_0->2";"P->V_2->4";"V->V_4->5";"V->E_5->0"; }; }; float_Data @["Input"] { name="Input"; col_flags=SAVE_DATA; is_matrix=1; cell_geom{ 6;1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [2] ;; }; width=0; ar { name="ar"; [6 1 210] 1;0;0;0;0;0;0;0;0;0; 0;1;0;0;0;0;1;0;0;0; 0;0;1;0;1;0;0;0;0;0; 0;0;0;0;0;1;0;1;0;0; 0;0;0;0;0;0;1;0;0;0; 0;0;0;1;0;0;1;0;0;0; 1;0;0;0;0;0;0;0;0;0; 0;1;0;1;0;0;0;0;0;1; 0;0;0;0;0;0;0;0;1;0; 0;0;0;0;0;1;0;0;0;1; 0;0;0;1;0;0;0;0;0;1; 0;0;0;0;0;1;0;0;0;0; 0;1;0;0;0;0;0;0;0;0; 1;0;0;0;0;0;1;0;1;0; 0;0;0;0;0;0;0;0;0;1; 0;1;0;0;0;0;0;1;0;0; 0;0;0;1;0;0;0;0;0;1; 0;0;0;0;0;1;0;0;0;0; 0;1;0;0;0;0;0;0;0;0; 1;0;0;0;0;0;0;1;0;0; 0;1;0;0;0;1;0;0;0;0; 0;1;0;0;0;0;0;1;0;0; 0;0;0;1;0;0;0;0;0;0; 0;0;1;0;0;0;0;0;0;1; 0;0;0;1;0;0;0;1;0;0; 0;0;0;1;0;0;0;0;0;1; 0;0;0;0;0;1;0;0;0;0; 0;0;0;0;1;0;0;0;0;0; 1;0;1;0;0;0;0;0;0;0; 0;0;0;1;0;0;0;0;1;0; 0;0;0;0;0;1;0;0;1;0; 0;0;1;0;0;0;0;0;0;1; 0;0;0;0;0;0;1;0;0;0; 0;0;0;1;0;0;0;0;0;1; 0;0;0;0;0;0;1;0;0;0; 0;0;0;1;0;0;0;1;0;0; 0;1;0;0;0;0;0;0;0;0; 1;0;0;0;0;0;0;1;0;0; 1;0;0;0;1;0;0;0;0;0; 0;1;0;0;0;0;0;0;1;0; 0;0;0;0;0;1;0;0;0;0; 0;1;0;0;0;1;0;0;0;0; 0;0;0;0;1;0;0;0;0;0; 0;1;0;0;1;0;0;0;1;0; 0;0;0;0;0;0;0;0;0;1; 0;1;0;0;0;0;0;0;0;0; 1;0;0;0;0;0;0;1;0;0; 1;0;0;0;1;0;0;0;0;0; 0;0;0;0;0;1;0;1;0;0; 0;0;0;0;0;0;1;0;0;0; 0;0;1;0;1;0;0;0;0;0; 0;1;0;0;0;0;0;0;0;1; 0;0;0;0;0;1;0;0;0;0; 0;0;1;0;0;0;0;0;0;1; 0;0;0;1;0;0;0;0;0;0; 1;0;0;0;0;0;1;0;1;0; 0;0;0;0;0;0;0;0;0;1; 0;0;0;0;1;0;0;0;0;0; 0;1;0;0;0;1;0;0;0;1; 0;0;0;0;0;1;0;0;0;0; 0;0;0;0;1;0;0;0;0;0; 0;1;0;0;1;0;0;0;1;0; 0;0;0;0;0;0;0;0;0;1; 0;0;0;0;1;0;0;0;0;0; 0;1;0;0;0;1;0;0;0;1; 0;0;0;0;0;1;0;0;0;0; 0;0;0;0;1;0;0;0;0;0; 0;1;0;0;0;1;0;0;0;1; 0;0;0;0;0;1;0;0;0;0; 0;1;0;0;0;0;0;1;0;0; 0;0;0;1;0;0;0;0;0;1; 0;0;0;0;0;1;0;0;0;0; 0;1;0;0;0;0;0;1;0;0; 0;0;0;0;0;0;1;0;0;0; 0;0;0;1;0;0;1;0;0;0; 1;0;0;0;0;0;0;0;0;0; 0;1;0;1;0;0;0;0;0;1; 0;0;0;0;0;1;0;0;0;0; 0;0;0;0;1;0;0;0;0;0; 1;0;1;0;0;0;0;0;0;0; 0;0;0;1;0;0;0;0;1;0; 0;0;0;0;1;0;1;0;0;0; 0;0;0;0;0;0;0;1;0;1; 0;0;0;0;0;1;0;0;0;0; 0;1;0;0;0;0;0;0;0;0; 1;0;0;0;0;0;0;1;0;0; 0;1;0;0;0;0;0;0;1;0; 0;0;0;0;1;0;1;0;0;0; 0;0;0;1;0;0;0;0;0;0; 0;1;0;0;0;0;0;1;0;0; 0;1;0;0;0;0;0;1;0;0; 0;0;0;0;0;0;1;0;0;0; 0;0;0;1;0;0;1;0;0;0; 1;0;0;0;0;0;0;0;0;0; 0;1;0;1;0;0;0;0;0;0; 0;0;1;0;0;0;0;0;1;0; 1;0;0;0;0;0;0;0;0;0; 0;1;0;1;0;0;0;0;0;0; 0;0;1;0;0;0;0;0;1;0; 1;0;0;0;0;0;0;1;0;0; 0;0;0;0;0;1;0;0;0;0; 1;0;0;0;1;0;0;0;0;0; 0;1;0;0;0;0;0;0;1;0; 0;0;0;0;1;0;0;0;0;0; 1;0;0;0;0;0;1;0;0;0; 0;0;0;1;0;0;0;0;0;1; 0;0;0;1;0;0;0;0;0;0; 0;0;1;0;0;0;0;0;1;0; 1;0;0;0;0;0;0;0;0;0; 0;1;0;0;0;0;1;0;0;0; 0;0;0;1;0;0;1;0;0;0; 1;0;0;0;0;0;0;1;0;0; 0;0;0;0;0;1;0;0;0;0; 1;0;0;0;1;0;0;0;0;0; 0;0;0;0;0;1;0;1;0;0; 0;0;0;1;0;0;0;0;0;1; 0;0;0;0;0;0;0;0;1;0; 0;0;0;0;0;1;0;0;1;0; 0;0;1;0;0;0;0;0;0;0; 0;0;0;1;0;1;0;0;0;0; 0;1;0;0;0;0;0;0;0;0; 1;0;0;0;0;0;0;1;0;0; 0;1;0;0;0;0;0;0;1;0; 0;0;0;0;1;0;1;0;0;0; 0;0;0;0;0;0;0;1;0;0; 0;0;1;0;0;0;0;0;1;0; }; }; float_Data @["Output"] { name="Output"; col_flags=SAVE_DATA; is_matrix=1; cell_geom{ 6;1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [2] ;; }; width=0; ar { name="ar"; [6 1 210] 0;0;0;0;1;0;0;0;0;1; 0;0;0;0;0;1;0;0;0;0; 0;0;0;1;0;0;0;0;1;0; 1;0;0;0;0;0;0;0;0;1; 0;0;0;0;0;0;1;0;0;1; 0;0;0;0;0;0;0;0;0;1; 0;0;0;0;1;0;1;0;0;0; 0;0;1;0;0;0;0;0;0;0; 0;1;0;0;0;0;0;0;1;0; 0;0;1;0;0;0;1;0;0;0; 0;0;1;0;0;0;0;0;1;0; 0;0;0;0;1;0;0;0;0;0; 0;0;0;1;0;0;0;0;0;1; 0;0;0;0;0;0;0;1;0;0; 0;0;1;0;1;0;0;0;0;0; 1;0;0;0;0;0;1;0;0;0; 0;0;1;0;0;0;0;0;1;0; 0;0;0;0;1;0;0;0;0;0; 0;0;0;1;0;0;0;0;0;0; 1;0;0;0;1;0;0;0;1;0; 0;0;0;0;1;0;0;0;0;0; 1;0;0;0;0;0;1;0;0;0; 0;0;0;0;0;1;0;0;0;0; 0;0;1;0;0;0;1;0;0;0; 1;0;0;0;0;0;1;0;0;0; 0;0;1;0;0;0;0;0;1;0; 0;0;0;0;0;0;0;1;0;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;0;0;1;0; 0;1;0;0;0;0;0;0;0;0; 0;1;1;0;0;0;0;0;0;1; 0;0;0;0;0;0;1;0;0;0; 0;0;1;0;0;0;0;0;0;1; 0;0;0;0;0;0;1;0;0;0; 1;0;0;0;1;0;0;0;0;0; 0;0;0;1;0;0;0;0;0;0; 1;0;0;1;0;0;0;0;0;0; 0;0;0;1;1;0;0;0;0;0; 0;1;0;0;0;0;0;0;1;0; 0;0;0;0;1;0;0;0;1;0; 0;0;0;0;0;0;0;1;0;0; 0;0;0;0;1;0;0;1;0;0; 0;0;0;0;0;0;0;1;0;0; 0;0;1;0;1;0;0;0;0;0; 0;0;0;1;0;0;0;0;0;0; 1;0;0;1;0;0;0;0;0;0; 0;0;0;1;0;0;0;0;1;0; 1;0;0;0;0;0;0;0;0;1; 0;0;0;0;0;1;0;0;0;0; 0;0;0;1;1;0;0;0;0;0; 0;0;1;0;0;0;0;0;1;0; 0;0;0;0;0;1;0;0;0;0; 0;0;1;0;0;0;1;0;0;0; 0;0;0;1;0;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;0;0;1;0;0;0;1;0; 0;0;1;0;0;0;0;0;1;0; 0;0;0;0;0;0;0;1;0;0; 0;0;0;0;1;0;0;1;0;0; 0;0;0;0;0;0;0;1;0;0; 0;0;1;0;0;0;0;1;0;0; 0;0;0;0;1;0;0;0;1;0; 0;0;1;0;0;0;0;0;1;0; 0;0;0;0;0;0;0;1;0;0; 0;0;0;0;1;0;0;0;1;0; 0;0;1;0;0;0;0;0;1;0; 0;0;0;0;1;0;0;0;0;0; 1;0;0;0;0;0;1;0;0;0; 0;0;1;0;0;0;0;0;1;0; 0;0;0;0;1;0;0;0;0;0; 1;0;0;0;0;0;0;0;0;1; 0;0;0;0;0;0;1;0;0;1; 0;0;0;0;0;0;0;0;0;1; 0;0;0;0;1;0;1;0;0;0; 0;0;1;0;0;0;0;0;1;0; 0;0;0;0;0;0;0;1;0;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;0;1;0;0; 0;0;0;0;0;1;0;0;0;0; 1;0;1;0;0;0;0;0;1;0; 0;0;0;0;1;0;0;0;0;0; 0;0;0;1;0;0;0;0;0;0; 1;0;0;0;1;0;0;0;0;0; 0;1;0;0;0;0;0;1;0;0; 0;0;0;0;0;1;1;0;0;0; 0;0;0;0;1;0;0;0;0;0; 1;0;0;0;1;0;0;0;0;0; 1;0;0;0;0;0;0;0;0;1; 0;0;0;0;0;0;1;0;0;1; 0;0;0;0;0;0;0;0;0;1; 0;0;0;0;1;0;1;0;0;0; 0;0;0;0;0;1;0;0;0;0; 0;1;0;0;0;0;0;0;0;1; 0;0;0;0;1;0;1;0;0;0; 0;0;0;0;0;1;0;0;0;0; 0;1;0;0;0;0;0;0;0;1; 1;0;0;0;0;0;0;0;1;0; 0;0;0;1;0;0;0;0;0;0; 0;0;0;1;1;0;0;0;0;0; 0;1;0;0;0;0;0;1;0;0; 0;0;0;1;0;0;0;0;0;1; 0;0;0;0;0;0;1;0;0;0; 0;0;1;0;0;0;1;0;0;0; 0;0;0;0;0;1;0;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;0;0;1;0;0;1; 0;0;0;0;0;0;0;0;0;1; 1;0;0;0;0;0;0;0;1;0; 0;0;0;1;0;0;0;0;0;0; 0;0;0;1;0;0;0;0;1;0; 1;0;0;0;0;0;1;0;0;0; 0;0;1;0;0;0;0;0;0;0; 0;1;0;0;0;0;0;0;1;0; 0;1;0;0;0;0;0;0;0;0; 0;1;0;0;0;0;1;0;1;0; 0;0;0;0;1;0;0;0;0;0; 0;0;0;1;0;0;0;0;0;0; 1;0;0;0;1;0;0;0;0;0; 0;1;0;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; 0;1;0;0;0;0;0;0;0;1; }; }; float_Data @["Targets"] { name="Targets"; col_flags=SAVE_DATA; is_matrix=1; cell_geom{ 6;1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [2] ;; }; width=0; ar { name="ar"; [6 1 210] 1;0;0;0;1;0;1;0;0;1; 0;0;0;0;0;1;1;0;0;0; 0;0;0;1;1;0;0;0;1;0; 1;0;0;1;0;0;1;0;0;1; 0;0;0;0;0;1;1;0;0;1; 1;0;0;0;0;0;0;0;0;1; 1;0;0;0;1;0;1;0;0;1; 0;0;1;0;0;1;0;0;1;0; 0;1;0;0;0;0;0;1;1;0; 0;1;1;0;0;0;1;0;0;1; 0;0;1;0;0;1;0;0;1;0; 0;1;0;0;1;0;0;1;0;0; 1;0;0;1;0;0;0;0;0;1; 1;0;0;0;0;0;0;1;1;0; 0;0;1;0;1;0;0;1;0;0; 1;0;0;1;0;0;1;0;0;1; 0;0;1;0;0;1;0;0;1;0; 0;1;0;0;1;0;0;1;0;0; 1;0;0;1;0;0;0;0;0;1; 1;0;0;1;1;0;0;0;1;0; 0;1;0;0;1;0;0;1;0;0; 1;0;0;1;0;0;1;0;0;1; 0;0;1;0;0;1;0;0;0;0; 0;1;1;0;0;1;1;0;0;0; 1;0;0;1;0;0;1;0;0;1; 0;0;1;0;0;1;0;0;1;0; 0;1;0;0;1;0;0;1;0;0; 0;0;0;1;1;0;0;0;0;0; 0;1;1;0;0;0;1;0;1;0; 0;1;0;0;0;0;0;1;1;0; 0;1;1;0;0;0;0;0;0;0; 0;1;1;0;0;0;1;0;0;1; 1;0;0;0;0;1;1;0;0;0; 0;1;1;0;0;0;1;0;0;1; 0;0;0;0;0;1;1;0;0;1; 1;0;0;0;1;0;0;1;0;0; 1;0;0;1;0;0;0;0;0;1; 1;0;0;1;1;0;0;0;0;0; 0;0;0;1;1;0;0;0;1;0; 0;1;1;0;0;0;0;1;1;0; 0;0;0;1;1;0;0;0;1;0; 0;1;0;0;1;0;0;1;0;0; 0;0;0;1;1;0;0;1;1;0; 0;0;0;0;0;0;0;1;1;0; 0;0;1;0;1;0;0;1;0;0; 1;0;0;1;0;0;0;0;0;1; 1;0;0;1;1;0;0;0;0;0; 0;0;0;1;1;0;0;0;1;0; 1;0;0;1;0;0;1;0;0;1; 0;0;0;0;0;1;1;0;0;0; 0;0;0;1;1;0;0;0;1;0; 0;1;1;0;0;0;0;1;1;0; 0;0;1;0;0;1;0;0;0;0; 0;1;1;0;0;1;1;0;0;0; 1;0;0;1;0;0;0;0;0;1; 1;0;0;0;0;0;0;1;1;0; 0;0;1;0;1;0;0;1;0;0; 0;0;0;1;1;0;0;1;1;0; 0;0;1;0;0;1;0;0;1;0; 0;1;0;0;1;0;0;1;0;0; 0;0;0;1;1;0;0;1;1;0; 0;0;0;0;0;0;0;1;1;0; 0;0;1;0;1;0;0;1;0;0; 0;0;0;1;1;0;0;1;1;0; 0;0;1;0;0;1;0;0;1;0; 0;1;0;0;1;0;0;1;0;0; 0;0;0;1;1;0;0;1;1;0; 0;0;1;0;0;1;0;0;1;0; 0;1;0;0;1;0;0;1;0;0; 1;0;0;1;0;0;1;0;0;1; 0;0;1;0;0;1;0;0;1;0; 0;1;0;0;1;0;0;1;0;0; 1;0;0;1;0;0;1;0;0;1; 0;0;0;0;0;1;1;0;0;1; 1;0;0;0;0;0;0;0;0;1; 1;0;0;0;1;0;1;0;0;1; 0;0;1;0;0;1;0;0;1;0; 0;1;0;0;1;0;0;1;0;0; 0;0;0;1;1;0;0;0;0;0; 0;1;1;0;0;0;1;0;1;0; 0;1;0;0;0;0;0;1;1;0; 0;0;0;0;0;1;1;0;0;0; 1;0;1;0;0;1;0;0;1;0; 0;1;0;0;1;0;0;1;0;0; 1;0;0;1;0;0;0;0;0;1; 1;0;0;1;1;0;0;0;1;0; 0;1;0;0;0;0;0;1;1;0; 0;0;0;0;0;1;1;0;0;0; 1;0;0;1;1;0;0;0;0;1; 1;0;0;0;1;0;0;1;0;0; 1;0;0;1;0;0;1;0;0;1; 0;0;0;0;0;1;1;0;0;1; 1;0;0;0;0;0;0;0;0;1; 1;0;0;0;1;0;1;0;0;1; 0;0;1;0;0;1;0;0;0;0; 0;1;1;0;0;0;0;0;0;1; 1;0;0;0;1;0;1;0;0;1; 0;0;1;0;0;1;0;0;0;0; 0;1;1;0;0;0;0;0;0;1; 1;0;0;0;1;0;0;1;1;0; 0;0;0;1;1;0;0;0;0;0; 0;0;0;1;1;0;0;0;1;0; 0;1;1;0;0;0;0;1;1;0; 0;0;0;1;1;0;0;0;0;1; 1;0;0;0;0;1;1;0;0;0; 0;1;1;0;0;0;1;0;0;1; 0;0;1;0;0;1;0;0;0;0; 0;1;1;0;0;0;0;0;0;1; 1;0;0;0;1;0;1;0;0;1; 0;0;0;0;0;1;1;0;0;1; 1;0;0;0;0;0;0;0;0;1; 1;0;0;0;1;0;0;1;1;0; 0;0;0;1;1;0;0;0;0;0; 0;0;0;1;1;0;0;0;1;0; 1;0;0;1;0;0;1;0;0;1; 0;0;1;0;0;1;0;0;1;0; 0;1;0;0;0;0;0;1;1;0; 0;1;1;0;0;0;0;0;0;0; 0;1;1;0;0;0;1;0;1;0; 0;1;0;0;1;0;0;1;0;0; 1;0;0;1;0;0;0;0;0;1; 1;0;0;1;1;0;0;0;1;0; 0;1;0;0;0;0;0;1;1;0; 0;0;0;0;0;1;1;0;0;0; 1;0;1;0;0;1;0;0;0;0; 0;1;1;0;0;0;0;0;0;1; }; }; }; data_flags=SAVE_ROWS|AUTO_CALC; auto_load=NO_AUTO_LOAD; auto_load_file=; row_height=0; keygen 4 0=0; row_indexes { name="row_indexes"; [210] 0;1;2;3;4;5;6;7;8;9; 10;11;12;13;14;15;16;17;18;19; 20;21;22;23;24;25;26;27;28;29; 30;31;32;33;34;35;36;37;38;39; 40;41;42;43;44;45;46;47;48;49; 50;51;52;53;54;55;56;57;58;59; 60;61;62;63;64;65;66;67;68;69; 70;71;72;73;74;75;76;77;78;79; 80;81;82;83;84;85;86;87;88;89; 90;91;92;93;94;95;96;97;98;99; 100;101;102;103;104;105;106;107;108;109; 110;111;112;113;114;115;116;117;118;119; 120;121;122;123;124;125;126;127;128;129; 130;131;132;133;134;135;136;137;138;139; 140;141;142;143;144;145;146;147;148;149; 150;151;152;153;154;155;156;157;158;159; 160;161;162;163;164;165;166;167;168;169; 170;171;172;173;174;175;176;177;178;179; 180;181;182;183;184;185;186;187;188;189; 190;191;192;193;194;195;196;197;198;199; 200;201;202;203;204;205;206;207;208;209; }; last_sort_spec { name="last_sort_spec"; ops { name="ops"; el_typ=DataSortEl; el_def=0; }; }; control_panel_cells { name="control_panel_cells"; el_typ=DataTableCell; el_def=0; }; }; DataTable @["UnitNames"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItemBase; el_def=0; UserDataItem @["N_ROWS"] { name="N_ROWS"; value 2 0=1; val_type_fixed=0; }; UserDataItem @["MAT_VAL_TEXT"] { name="MAT_VAL_TEXT"; value 2 0=1; val_type_fixed=0; }; UserDataItem @["WIDTH"] { name="WIDTH"; value 6 0=3.299999952316284; val_type_fixed=0; }; }; name="UnitNames"; desc=; data { name="data"; el_typ=String_Data; el_def=0; String_Data @["Input"] { name="Input"; col_flags=SAVE_DATA; is_matrix=1; cell_geom{ 6;1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [2] ;; }; width=0; ar { name="ar"; [6 1 1] "B";"T";"S";"X";"V";"P"; }; }; String_Data @["Output"] { name="Output"; col_flags=SAVE_DATA; is_matrix=1; cell_geom{ 6;1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [2] ;; }; width=0; ar { name="ar"; [6 1 1] "T";"S";"X";"V";"P";"E"; }; }; String_Data @["Targets"] { name="Targets"; col_flags=SAVE_DATA; is_matrix=1; cell_geom{ 6;1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [2] ;; }; width=0; ar { name="ar"; [6 1 1] "T";"S";"X";"V";"P";"E"; }; }; }; data_flags=SAVE_ROWS|AUTO_CALC; auto_load=NO_AUTO_LOAD; auto_load_file=; row_height=0; keygen 4 0=0; row_indexes { name="row_indexes"; [1] 0; }; last_sort_spec { name="last_sort_spec"; ops { name="ops"; el_typ=DataSortEl; el_def=0; }; }; control_panel_cells { name="control_panel_cells"; el_typ=DataTableCell; el_def=0; }; }; }; }; programs { name="programs"; el_typ=Program; el_def=0; tags=; desc=; debug_mode=0; Program_Group @.gp["InputGeneration"] { name="InputGeneration"; el_typ=Program; el_def=0; tags=; desc=; debug_mode=0; Program @["GenData"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserData_DocLink; el_def=0; UserData_DocLink @["DocLink"] { name="DocLink"; doc=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenData"].doc$$; }; }; name="GenData"; short_nm="GeData"; tags=; desc="generally generates teh data -- has an arg to determine what kind of data to generate"; version { major=0; minor=0; step=0; }; author=; email=; flags=NO_STOP_STEP; stop_step_cond { expr=; }; objs { name="objs"; el_typ=taNBase; el_def=0; }; types { name="types"; el_typ=DynEnumType; el_def=0; DynEnumType @["InputType"] { name="InputType"; desc=; enums { name=; el_typ=DynEnumItem; el_def=0; DynEnumItem @["TRAIN_ENV"] { name="TRAIN_ENV"; value=0; desc=; }; DynEnumItem @["RANDOM"] { name="RANDOM"; value=1; desc=; }; }; bits=0; }; }; args { name="args"; el_typ=ProgVar; el_def=0; ProgVar @["input_data"] { name="input_data"; var_type=T_Object; object_type=DataTable; object_val=.projects["SRN_midterm16"].data.gp["grammar"]["train_env"]$$; objs_ptr=0; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL|PGRM_ARG; reference=0; desc=; init_from=NULL; }; ProgVar @["n_seq"] { name="n_seq"; var_type=T_Int; int_val=25; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL|PGRM_ARG; reference=0; desc="number of sequences to generate"; init_from=NULL; }; ProgVar @["n_epochs_per_env"] { name="n_epochs_per_env"; var_type=T_Int; int_val=2; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|EDIT_VAL|PGRM_ARG; reference=0; desc=; init_from=NULL; }; }; vars { name="vars"; el_typ=ProgVar; el_def=0; ProgVar @["i"] { name="i"; var_type=T_Int; int_val=25; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc=; init_from=NULL; }; ProgVar @["avg_length"] { name="avg_length"; var_type=T_Real; real_val=8.4; flags=CTRL_PANEL|CTRL_READ_ONLY|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc=; init_from=NULL; }; ProgVar @["input_type"] { name="input_type"; var_type=T_DynEnum; dyn_enum_val { user_data_=NULL; enum_type=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenData"].types["InputType"]$$; value=0; }; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc=; init_from=NULL; }; }; functions { name="functions"; el_typ=Function; el_def=0; }; init_code { name="init_code"; el_typ=ProgCode; el_def=0; }; prog_code { name="prog_code"; el_typ=ProgCode; el_def=0; IfReturn @[0] { desc="just return if it's not an appropriate epoch"; flags=OFF|CAN_REVERT_TO_CODE; code_string="if(.networks[0].epoch % n_epochs_per_env != 0) return"; pre_compile_code_string="if(.networks[0].epoch % n_epochs_per_env != 0) return"; cond { expr=".networks[0].epoch % n_epochs_per_env != 0"; }; }; ResetDataRows @[1] { desc=; flags=CAN_REVERT_TO_CODE; code_string="ResetDataRows: table = input_data "; pre_compile_code_string="ResetDataRows: table = input_data "; data_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenData"].args["input_data"]$$; }; ForLoop @[2] { desc=; flags=CAN_REVERT_TO_CODE; code_string="for (i = 0; i < n_seq; i++)"; pre_compile_code_string="for (i = 0; i < n_seq; i++)"; loop_code { name=; el_typ=ProgCode; el_def=0; Switch @[0] { desc=; flags=CAN_REVERT_TO_CODE; code_string="switch(input_type)"; pre_compile_code_string="switch(input_type)"; switch_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenData"].vars["input_type"]$$; cases { name=; el_typ=CaseBlock; el_def=0; CaseBlock @[0] { desc=; flags=CAN_REVERT_TO_CODE; code_string="case: TRAIN_ENV"; pre_compile_code_string="case: TRAIN_ENV"; prog_code { name=; el_typ=ProgCode; el_def=0; ProgramCall @[0] { desc=; flags=CAN_REVERT_TO_CODE; code_string="ReberGenSequence(input_data, i)"; pre_compile_code_string="ReberGenSequence(input_data, i)"; prog_args { name=; el_typ=ProgArg; el_def=0; ProgArg @[0] { arg_type=DataTable; type="DataTable*"; name="input_data"; required=1; def_val=; prev_expr=; expr { expr="input_data"; }; }; ProgArg @[1] { arg_type=int; type="int"; name="seq_no"; required=1; def_val=; prev_expr=; expr { expr="i"; }; }; }; target=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"]$$; targ_ld_init="*ReberGenSequence*"; }; }; case_val { expr="TRAIN_ENV"; }; is_default=0; }; }; }; }; init { expr="i = 0"; }; test { expr="i < n_seq"; }; iter { expr="i++"; }; }; AssignExpr @[3] { desc="compute average sequence length"; flags=CAN_REVERT_TO_CODE; code_string="avg_length = 1.0/n_seq * input_data.rows"; pre_compile_code_string="avg_length = 1.0/n_seq * input_data.rows"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenData"].vars["avg_length"]$$; expr { expr="1.0/n_seq * input_data.rows"; }; }; PrintVar @[4] { desc=; flags=CAN_REVERT_TO_CODE; code_string="Print avg_length"; pre_compile_code_string="Print avg_length"; message=; print_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenData"].vars["avg_length"]$; print_var2=NULL; print_var3=NULL; print_var4=NULL; print_var5=NULL; print_var6=NULL; debug=0; }; }; step_prog=NULL; step_n=1; doc { name="doc"; desc=; web_doc=0; wiki=; url="local"; full_url="local"; text_size=1; text=; html_text=; }; }; Program @["ReberGenSequence"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserData_DocLink; el_def=0; UserData_DocLink @["DocLink"] { name="DocLink"; doc=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].doc$$; }; }; name="ReberGenSequence"; short_nm="RbGSqn"; tags=; desc="Chooses subsequent states based on reber grammar defined by TransitionMatrix"; version { major=0; minor=0; step=0; }; author=; email=; flags=NO_STOP_STEP; stop_step_cond { expr=; }; objs { name="objs"; el_typ=DataTable; el_def=0; DataTable @["TransitionMatrix"] { name="TransitionMatrix"; desc=; data { name="data"; el_typ=float_Data; el_def=0; float_Data @["DestNode0"] { name="DestNode0"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [5] 0;0;0;0;0; }; }; float_Data @["DestNode1"] { name="DestNode1"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [5] 0.5;0.5;0;0;0; }; }; float_Data @["DestNode2"] { name="DestNode2"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [5] 0.5;0;0.5;0.5;0; }; }; float_Data @["DestNode3"] { name="DestNode3"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [5] 0;0.5;0;0;0.5; }; }; float_Data @["DestNode4"] { name="DestNode4"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [5] 0;0;0.5;0;0; }; }; float_Data @["DestNode5"] { name="DestNode5"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [5] 0;0;0;0.5;0.5; }; }; }; data_flags=SAVE_ROWS|AUTO_CALC; auto_load=NO_AUTO_LOAD; auto_load_file=; row_height=0; keygen 4 0=0; row_indexes { name="row_indexes"; [5] 0;1;2;3;4; }; last_sort_spec { name="last_sort_spec"; ops { name="ops"; el_typ=DataSortEl; el_def=0; }; }; control_panel_cells { name="control_panel_cells"; el_typ=DataTableCell; el_def=0; }; }; DataTable @["PathLabelInds"] { name="PathLabelInds"; desc=; data { name="data"; el_typ=int_Data; el_def=0; int_Data @["ToDestNode0LabelInd"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItemBase; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="ToDestNode0LabelInd"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [5] 0;0;0;0;0; }; }; int_Data @["ToDestNode1LabelInd"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItemBase; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="ToDestNode1LabelInd"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [5] 1;2;0;0;0; }; }; int_Data @["ToDestNode2LabelInd"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItemBase; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="ToDestNode2LabelInd"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [5] 5;0;1;3;0; }; }; int_Data @["ToDestNode3LabelInd"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItemBase; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="ToDestNode3LabelInd"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [5] 0;3;0;0;5; }; }; int_Data @["ToDestNode4LabelInd"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItemBase; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="ToDestNode4LabelInd"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [5] 0;0;4;0;0; }; }; int_Data @["ToDestNode5LabelInd"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserDataItemBase; el_def=0; UserDataItem @["NARROW"] { name="NARROW"; value 1 0=1; val_type_fixed=0; }; }; name="ToDestNode5LabelInd"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [5] 0;0;0;2;4; }; }; }; data_flags=SAVE_ROWS|AUTO_CALC; auto_load=NO_AUTO_LOAD; auto_load_file=; row_height=0; keygen 4 0=0; row_indexes { name="row_indexes"; [5] 0;1;2;3;4; }; last_sort_spec { name="last_sort_spec"; ops { name="ops"; el_typ=DataSortEl; el_def=0; }; }; control_panel_cells { name="control_panel_cells"; el_typ=DataTableCell; el_def=0; }; }; }; types { name="types"; el_typ=DynEnumType; el_def=0; }; args { name="args"; el_typ=ProgVar; el_def=0; ProgVar @["input_data"] { name="input_data"; var_type=T_Object; object_type=DataTable; object_val=$.projects["SRN_midterm16"].data.gp["grammar"]["train_env"]$; objs_ptr=0; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL|PGRM_ARG; reference=0; desc=; init_from=NULL; }; ProgVar @["seq_no"] { name="seq_no"; var_type=T_Int; int_val=24; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL|PGRM_ARG; reference=0; desc=; init_from=NULL; }; }; vars { name="vars"; el_typ=ProgVar; el_def=0; ProgVar @["unit_names"] { name="unit_names"; var_type=T_Object; object_type=DataTable; object_val=.projects["SRN_midterm16"].data.gp["grammar"]["UnitNames"]$$; objs_ptr=0; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc=; init_from=NULL; }; ProgVar @["TransitionMatrix"] { name="TransitionMatrix"; var_type=T_Object; object_type=DataTable; object_val=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].objs["TransitionMatrix"]$$; objs_ptr=1; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc=; init_from=NULL; }; ProgVar @["PathLabelInds"] { name="PathLabelInds"; var_type=T_Object; object_type=DataTable; object_val=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].objs["PathLabelInds"]$$; objs_ptr=1; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc=; init_from=NULL; }; ProgVar @["state"] { name="state"; var_type=T_Int; int_val=5; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="previous label; start at \"B\""; init_from=NULL; }; ProgVar @["prv_label_ind"] { name="prv_label_ind"; var_type=T_Int; int_val=4; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="previous label; start at \"B\""; init_from=NULL; }; ProgVar @["next_label_ind"] { name="next_label_ind"; var_type=T_Int; int_val=4; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="next label index"; init_from=NULL; }; ProgVar @["oth_label_ind"] { name="oth_label_ind"; var_type=T_Int; int_val=5; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="next label index"; init_from=NULL; }; ProgVar @["n_state"] { name="n_state"; var_type=T_Int; int_val=6; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="next label index"; init_from=NULL; }; ProgVar @["next_state"] { name="next_state"; var_type=T_Int; int_val=5; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="next label index"; init_from=NULL; }; ProgVar @["tot_p"] { name="tot_p"; var_type=T_Real; real_val=1; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="total probability"; init_from=NULL; }; ProgVar @["prob"] { name="prob"; var_type=T_Real; real_val=1.1; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="total probability"; init_from=NULL; }; ProgVar @["state_p"] { name="state_p"; var_type=T_Real; real_val=0.5; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="total probability"; init_from=NULL; }; ProgVar @["i"] { name="i"; var_type=T_Int; int_val=0; flags=NULL_CHECK|SAVE_VAL|EDIT_VAL; reference=0; desc=; init_from=NULL; }; }; functions { name="functions"; el_typ=Function; el_def=0; }; init_code { name="init_code"; el_typ=ProgCode; el_def=0; }; prog_code { name="prog_code"; el_typ=ProgCode; el_def=0; Comment @[0] { desc="init vars for the sequence"; flags=CAN_REVERT_TO_CODE; code_string="// init vars for the sequence"; pre_compile_code_string="// init vars for the sequence"; }; AssignExpr @[1] { desc=; flags=CAN_REVERT_TO_CODE; code_string="state = 0"; pre_compile_code_string="state = 0"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["state"]$$; expr { expr="0"; }; }; AssignExpr @[2] { desc=; flags=CAN_REVERT_TO_CODE; code_string="prv_label_ind = 6"; pre_compile_code_string="prv_label_ind = 6"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["prv_label_ind"]$$; expr { expr="6"; }; }; AssignExpr @[3] { desc=; flags=CAN_REVERT_TO_CODE; code_string="next_label_ind = 6"; pre_compile_code_string="next_label_ind = 6"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["next_label_ind"]$$; expr { expr="6"; }; }; AssignExpr @[4] { desc=; flags=CAN_REVERT_TO_CODE; code_string="oth_label_ind = -1"; pre_compile_code_string="oth_label_ind = -1"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["oth_label_ind"]$$; expr { expr="-1"; }; }; WhileLoop @[5] { desc="traverse all the states until it reaches the end"; flags=CAN_REVERT_TO_CODE; code_string="while (state!=5)"; pre_compile_code_string="while (state!=5)"; loop_code { name=; el_typ=ProgCode; el_def=0; AssignExpr @[0] { desc="make the current state the next state from the previous iteration"; flags=CAN_REVERT_TO_CODE; code_string="prv_label_ind = next_label_ind"; pre_compile_code_string="prv_label_ind = next_label_ind"; result_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["prv_label_ind"]$; expr { expr="next_label_ind"; }; }; AssignExpr @[1] { desc="re init this"; flags=CAN_REVERT_TO_CODE; code_string="tot_p = 0.0"; pre_compile_code_string="tot_p = 0.0"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["tot_p"]$$; expr { expr="0.0"; }; }; AssignExpr @[2] { desc="re init this"; flags=CAN_REVERT_TO_CODE; code_string="oth_label_ind = -1"; pre_compile_code_string="oth_label_ind = -1"; result_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["oth_label_ind"]$; expr { expr="-1"; }; }; RandomCall @[3] { desc="get a random number to determine what target is chosen as output"; flags=CAN_REVERT_TO_CODE; code_string="prob = Random::ZeroOne()"; pre_compile_code_string="prob = Random::ZeroOne()"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["prob"]$$; object_type=Random; method=Random::ZeroOne; meth_args { name=; el_typ=ProgArg; el_def=0; ProgArg @[0] { arg_type=int; type="int"; name="thr_no"; required=0; def_val="-1"; prev_expr=; expr { expr=; }; }; }; }; ForLoop @[4] { desc="loop over columns for the current row (current state)"; flags=CAN_REVERT_TO_CODE; code_string="for (n_state = 0; n_state < 6; n_state++)"; pre_compile_code_string="for (n_state = 0; n_state < 6; n_state++)"; loop_code { name=; el_typ=ProgCode; el_def=0; MethodCall @[0] { desc="get the probability of making this transition"; flags=CAN_REVERT_TO_CODE; code_string="state_p = TransitionMatrix->GetVal(n_state, state)"; pre_compile_code_string="state_p = TransitionMatrix->GetVal(n_state, state)"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["state_p"]$$; obj=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["TransitionMatrix"]$$; method=DataTable::GetVal; meth_args { name=; el_typ=ProgArg; el_def=0; ProgArg @[0] { arg_type=const_Variant_ref; type="Variant&"; name="col"; required=1; def_val=; prev_expr=; expr { expr="n_state"; }; }; ProgArg @[1] { arg_type=int; type="int"; name="row"; required=1; def_val=; prev_expr=; expr { expr="state"; }; }; }; meth_sig="const_Variant GetVal(Variant& col, int row)"; meth_desc=" get data of scalar type, in Variant form (any data type, use for Programs), for given column, row -- column can be specified as either integer index or a string that is then used to find the given column name"; }; If @[1] { desc="if it's in the current range, select it; if not, then dont"; flags=CAN_REVERT_TO_CODE; code_string="if (prob <= (state_p+tot_p))"; pre_compile_code_string="if (prob <= (state_p+tot_p))"; cond { expr="prob <= (state_p+tot_p)"; }; true_code { name=; el_typ=ProgCode; el_def=0; MethodCall @[0] { desc=; flags=CAN_REVERT_TO_CODE; code_string="next_label_ind = PathLabelInds->GetVal(n_state, state)"; pre_compile_code_string="next_label_ind = PathLabelInds->GetVal(n_state, state)"; result_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["next_label_ind"]$; obj=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["PathLabelInds"]$$; method=DataTable::GetVal; meth_args { name=; el_typ=ProgArg; el_def=0; ProgArg @[0] { arg_type=const_Variant_ref; type="Variant&"; name="col"; required=1; def_val=; prev_expr=; expr { expr="n_state"; }; }; ProgArg @[1] { arg_type=int; type="int"; name="row"; required=1; def_val=; prev_expr=; expr { expr="state"; }; }; }; meth_sig="const_Variant GetVal(Variant& col, int row)"; meth_desc=" get data of scalar type, in Variant form (any data type, use for Programs), for given column, row -- column can be specified as either integer index or a string that is then used to find the given column name"; }; AssignExpr @[1] { desc=; flags=CAN_REVERT_TO_CODE; code_string="prob = 1.1"; pre_compile_code_string="prob = 1.1"; result_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["prob"]$; expr { expr="1.1"; }; }; AssignExpr @[2] { desc=; flags=CAN_REVERT_TO_CODE; code_string="next_state = n_state"; pre_compile_code_string="next_state = n_state"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["next_state"]$$; expr { expr="n_state"; }; }; }; }; Else @[2] { desc=; flags=CAN_REVERT_TO_CODE; code_string="else"; pre_compile_code_string="else"; else_code { name="else_code"; el_typ=ProgCode; el_def=0; If @[0] { desc="if it's not the selected output, but it's still possible based on the grammar, get the other potential target"; flags=CAN_REVERT_TO_CODE; code_string="if (state_p>0)"; pre_compile_code_string="if (state_p>0)"; cond { expr="state_p>0"; }; true_code { name="true_code"; el_typ=ProgCode; el_def=0; MethodCall @[0] { desc=; flags=CAN_REVERT_TO_CODE; code_string="oth_label_ind = PathLabelInds->GetVal(n_state, state)"; pre_compile_code_string="oth_label_ind = PathLabelInds->GetVal(n_state, state)"; result_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["oth_label_ind"]$; obj=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["PathLabelInds"]$; method=DataTable::GetVal; meth_args { name=; el_typ=ProgArg; el_def=0; ProgArg @[0] { arg_type=const_Variant_ref; type="Variant&"; name="col"; required=1; def_val=; prev_expr=; expr { expr="n_state"; }; }; ProgArg @[1] { arg_type=int; type="int"; name="row"; required=1; def_val=; prev_expr=; expr { expr="state"; }; }; }; meth_sig="const_Variant GetVal(Variant& col, int row)"; meth_desc=" get data of scalar type, in Variant form (any data type, use for Programs), for given column, row -- column can be specified as either integer index or a string that is then used to find the given column name"; }; }; }; }; }; VarIncr @[3] { desc="increment this so future columns can be selected"; flags=CAN_REVERT_TO_CODE; code_string="tot_p += state_p"; pre_compile_code_string="tot_p += state_p"; var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["tot_p"]$; expr { expr="state_p"; }; }; PrintExpr @[4] { desc=; flags=OFF|CAN_REVERT_TO_CODE; code_string="Print state << \"\\t\" << n_state << \"\\t\" << state_p << \"\\t\" << prob << \"\\t\" << next_state"; pre_compile_code_string="Print state << \"\\t\" << n_state << \"\\t\" << state_p << \"\\t\" << prob << \"\\t\" << next_state"; expr { expr="state << \"\\t\" << n_state << \"\\t\" << state_p << \"\\t\" << prob << \"\\t\" << next_state"; }; debug=0; }; }; init { expr="n_state = 0"; }; test { expr="n_state < 6"; }; iter { expr="n_state++"; }; }; ProgramCall @[5] { desc="generate a row of data based on previous pass through"; flags=CAN_REVERT_TO_CODE; code_string="GenTrial(input_data, prv_label_ind, next_label_ind, oth_label_ind, state, next_state, seq_no)"; pre_compile_code_string="GenTrial(input_data, prv_label_ind, next_label_ind, oth_label_ind, state, next_state, seq_no)"; prog_args { name=; el_typ=ProgArg; el_def=0; ProgArg @[0] { arg_type=DataTable; type="DataTable*"; name="input_data"; required=1; def_val=; prev_expr=; expr { expr="input_data"; }; }; ProgArg @[1] { arg_type=int; type="int"; name="prv_label_ind"; required=1; def_val=; prev_expr=; expr { expr="prv_label_ind"; }; }; ProgArg @[2] { arg_type=int; type="int"; name="next_label_ind"; required=1; def_val=; prev_expr=; expr { expr="next_label_ind"; }; }; ProgArg @[3] { arg_type=int; type="int"; name="oth_label_ind"; required=1; def_val=; prev_expr=; expr { expr="oth_label_ind"; }; }; ProgArg @[4] { arg_type=int; type="int"; name="state"; required=1; def_val=; prev_expr=; expr { expr="state"; }; }; ProgArg @[5] { arg_type=int; type="int"; name="next_state"; required=1; def_val=; prev_expr=; expr { expr="next_state"; }; }; ProgArg @[6] { arg_type=int; type="int"; name="seq_no"; required=1; def_val=; prev_expr=; expr { expr="seq_no"; }; }; }; target=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"]$$; targ_ld_init="*GenTrial*"; }; AssignExpr @[6] { desc="assign the current state to the next state"; flags=CAN_REVERT_TO_CODE; code_string="state = next_state"; pre_compile_code_string="state = next_state"; result_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["ReberGenSequence"].vars["state"]$; expr { expr="next_state"; }; }; }; test { expr="state!=5"; }; }; ProgramCall @[6] { desc="generate the last row of data for the given sequence"; flags=CAN_REVERT_TO_CODE; code_string="GenTrial(input_data, next_label_ind, 7, -1, 5, 0, seq_no)"; pre_compile_code_string="GenTrial(input_data, next_label_ind, 7, -1, 5, 0, seq_no)"; prog_args { name=; el_typ=ProgArg; el_def=0; ProgArg @[0] { arg_type=DataTable; type="DataTable*"; name="input_data"; required=1; def_val=; prev_expr=; expr { expr="input_data"; }; }; ProgArg @[1] { arg_type=int; type="int"; name="prv_label_ind"; required=1; def_val=; prev_expr=; expr { expr="next_label_ind"; }; }; ProgArg @[2] { arg_type=int; type="int"; name="next_label_ind"; required=1; def_val=; prev_expr=; expr { expr="7"; }; }; ProgArg @[3] { arg_type=int; type="int"; name="oth_label_ind"; required=1; def_val=; prev_expr=; expr { expr="-1"; }; }; ProgArg @[4] { arg_type=int; type="int"; name="state"; required=1; def_val=; prev_expr=; expr { expr="5"; }; }; ProgArg @[5] { arg_type=int; type="int"; name="next_state"; required=1; def_val=; prev_expr=; expr { expr="0"; }; }; ProgArg @[6] { arg_type=int; type="int"; name="seq_no"; required=1; def_val=; prev_expr=; expr { expr="seq_no"; }; }; }; target=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"]$; targ_ld_init="*GenTrial*"; }; }; step_prog=NULL; step_n=1; doc { name="doc"; desc=; web_doc=0; wiki=; url="local"; full_url="local"; text_size=1; text=; html_text=; }; }; Program @["GenTrial"] { UserDataItem_List @*(.user_data_) { name=; el_typ=UserData_DocLink; el_def=0; UserData_DocLink @["DocLink"] { name="DocLink"; doc=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].doc$$; }; }; name="GenTrial"; short_nm="GTrl"; tags=; desc="actually adds data to the input table, used for both Reber and Random generation"; version { major=0; minor=0; step=0; }; author=; email=; flags=NO_STOP_STEP; stop_step_cond { expr=; }; objs { name="objs"; el_typ=taNBase; el_def=0; DataTable @["PathLabels"] { name="PathLabels"; desc=; data { name="data"; el_typ=String_Data; el_def=0; String_Data @["label"] { name="label"; col_flags=SAVE_DATA; is_matrix=0; cell_geom{ 1; }; calc_expr { expr=; }; dim_names { name="dim_names"; [0] }; width=0; ar { name="ar"; [8] "none";"T";"S";"X";"V";"P";"B";"E"; }; }; }; data_flags=SAVE_ROWS|AUTO_CALC; auto_load=NO_AUTO_LOAD; auto_load_file=; row_height=0; keygen 4 0=0; row_indexes { name="row_indexes"; [8] 0;1;2;3;4;5;6;7; }; last_sort_spec { name="last_sort_spec"; ops { name="ops"; el_typ=DataSortEl; el_def=0; }; }; control_panel_cells { name="control_panel_cells"; el_typ=DataTableCell; el_def=0; }; }; }; types { name="types"; el_typ=DynEnumType; el_def=0; DynEnumType @["Input"] { name="Input"; desc=; enums { name=; el_typ=DynEnumItem; el_def=0; DynEnumItem @["I_B"] { name="I_B"; value=0; desc=; }; DynEnumItem @["I_T"] { name="I_T"; value=1; desc=; }; DynEnumItem @["I_S"] { name="I_S"; value=2; desc=; }; DynEnumItem @["I_X"] { name="I_X"; value=3; desc=; }; DynEnumItem @["I_V"] { name="I_V"; value=4; desc=; }; DynEnumItem @["I_P"] { name="I_P"; value=5; desc=; }; }; bits=0; }; DynEnumType @["Output"] { name="Output"; desc=; enums { name=; el_typ=DynEnumItem; el_def=0; DynEnumItem @["O_T"] { name="O_T"; value=0; desc=; }; DynEnumItem @["O_S"] { name="O_S"; value=1; desc=; }; DynEnumItem @["O_X"] { name="O_X"; value=2; desc=; }; DynEnumItem @["O_V"] { name="O_V"; value=3; desc=; }; DynEnumItem @["O_P"] { name="O_P"; value=4; desc=; }; DynEnumItem @["O_E"] { name="O_E"; value=5; desc=; }; }; bits=0; }; DynEnumType @["Targets"] { name="Targets"; desc=; enums { name=; el_typ=DynEnumItem; el_def=0; DynEnumItem @["T_T"] { name="T_T"; value=0; desc=; }; DynEnumItem @["T_S"] { name="T_S"; value=1; desc=; }; DynEnumItem @["T_X"] { name="T_X"; value=2; desc=; }; DynEnumItem @["T_V"] { name="T_V"; value=3; desc=; }; DynEnumItem @["T_P"] { name="T_P"; value=4; desc=; }; DynEnumItem @["T_E"] { name="T_E"; value=5; desc=; }; }; bits=0; }; }; args { name="args"; el_typ=ProgVar; el_def=0; ProgVar @["input_data"] { name="input_data"; var_type=T_Object; object_type=DataTable; object_val=$.projects["SRN_midterm16"].data.gp["grammar"]["train_env"]$; objs_ptr=0; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL|PGRM_ARG; reference=0; desc="the data table to create"; init_from=NULL; }; ProgVar @["prv_label_ind"] { name="prv_label_ind"; var_type=T_Int; int_val=4; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL|PGRM_ARG; reference=0; desc="index of the previous label"; init_from=NULL; }; ProgVar @["next_label_ind"] { name="next_label_ind"; var_type=T_Int; int_val=7; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL|PGRM_ARG; reference=0; desc="index of the next label"; init_from=NULL; }; ProgVar @["oth_label_ind"] { name="oth_label_ind"; var_type=T_Int; int_val=-1; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL|PGRM_ARG; reference=0; desc="index of hte other potential target"; init_from=NULL; }; ProgVar @["state"] { name="state"; var_type=T_Int; int_val=5; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL|PGRM_ARG; reference=0; desc="the actual state/node"; init_from=NULL; }; ProgVar @["next_state"] { name="next_state"; var_type=T_Int; int_val=0; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL|PGRM_ARG; reference=0; desc="the next state/node"; init_from=NULL; }; ProgVar @["seq_no"] { name="seq_no"; var_type=T_Int; int_val=24; flags=CTRL_PANEL|NULL_CHECK|SAVE_VAL|USED|EDIT_VAL|PGRM_ARG; reference=0; desc=; init_from=NULL; }; }; vars { name="vars"; el_typ=ProgVar; el_def=0; ProgVar @["PathLabels"] { name="PathLabels"; var_type=T_Object; object_type=DataTable; object_val=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].objs["PathLabels"]$$; objs_ptr=1; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="data table with the labels of the transitions in them"; init_from=NULL; }; ProgVar @["label"] { name="label"; var_type=T_String; string_val="E"; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="current label (either for previous or next transition)"; init_from=NULL; }; ProgVar @["Name"] { name="Name"; var_type=T_String; string_val="V->E_5->0"; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="name of the trial"; init_from=NULL; }; ProgVar @["unit_names"] { name="unit_names"; var_type=T_Object; object_type=DataTable; object_val=$.projects["SRN_midterm16"].data.gp["grammar"]["UnitNames"]$; objs_ptr=0; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc=; init_from=NULL; }; ProgVar @["curInput"] { name="curInput"; var_type=T_DynEnum; dyn_enum_val { user_data_=NULL; enum_type=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].types["Input"]$$; value=4; }; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc="input enum -- used for setting values"; init_from=NULL; }; ProgVar @["curTarget_actual"] { name="curTarget_actual"; var_type=T_DynEnum; dyn_enum_val { user_data_=NULL; enum_type=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].types["Targets"]$$; value=5; }; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc=; init_from=NULL; }; ProgVar @["curTarget_other"] { name="curTarget_other"; var_type=T_DynEnum; dyn_enum_val { user_data_=NULL; enum_type=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].types["Targets"]$; value=4; }; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc=; init_from=NULL; }; ProgVar @["curOutput"] { name="curOutput"; var_type=T_DynEnum; dyn_enum_val { user_data_=NULL; enum_type=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].types["Output"]$$; value=5; }; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc=; init_from=NULL; }; ProgVar @["Group"] { name="Group"; var_type=T_String; string_val="Seq_24"; flags=NULL_CHECK|SAVE_VAL|USED|EDIT_VAL; reference=0; desc=; init_from=NULL; }; }; functions { name="functions"; el_typ=Function; el_def=0; }; init_code { name="init_code"; el_typ=ProgCode; el_def=0; }; prog_code { name="prog_code"; el_typ=ProgCode; el_def=0; AddNewDataRow @[0] { desc="add a new data row"; flags=CAN_REVERT_TO_CODE; code_string="Add New Row: table = input_data "; pre_compile_code_string="Add New Row: table = input_data "; data_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].args["input_data"]$$; }; DataVarProg @[1] { desc="get the previous transitions name"; flags=CAN_REVERT_TO_CODE; code_string="Data From: table=PathLabels row_spec=row_num row_var=prv_label_ind set=from all_matches=false var_1=label var_2=? var_3=? var_4=? "; pre_compile_code_string="Data From: table=PathLabels row_spec=row_num row_var=prv_label_ind set=from all_matches=false var_1=label var_2=? var_3=? var_4=? "; data_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["PathLabels"]$$; row_spec=ROW_NUM; row_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].args["prv_label_ind"]$$; set_data=0; all_matches=0; quiet=1; var_1=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["label"]$$; var_2=NULL; var_3=NULL; var_4=NULL; }; AssignExpr @[2] { desc="start building the trial name"; flags=CAN_REVERT_TO_CODE; code_string="Name = label"; pre_compile_code_string="Name = label"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["Name"]$$; expr { expr="label"; }; }; If @[3] { desc="assign input.. if true it's the beginning. if false, assign based on the index"; flags=CAN_REVERT_TO_CODE; code_string="if (prv_label_ind==6)"; pre_compile_code_string="if (prv_label_ind==6)"; cond { expr="prv_label_ind==6"; }; true_code { name=; el_typ=ProgCode; el_def=0; AssignExpr @[0] { desc=; flags=CAN_REVERT_TO_CODE; code_string="curInput = I_B"; pre_compile_code_string="curInput = I_B"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["curInput"]$$; expr { expr="I_B"; }; }; }; }; Else @[4] { desc=; flags=CAN_REVERT_TO_CODE; code_string="else"; pre_compile_code_string="else"; else_code { name="else_code"; el_typ=ProgCode; el_def=0; AssignExpr @[0] { desc=; flags=CAN_REVERT_TO_CODE; code_string="curInput = \"I_\" + label"; pre_compile_code_string="curInput = \"I_\" + label"; result_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["curInput"]$; expr { expr="\"I_\" + label"; }; }; }; }; DataVarProg @[5] { desc="get the next state / output"; flags=CAN_REVERT_TO_CODE; code_string="Data From: table=PathLabels row_spec=row_num row_var=next_label_ind set=from all_matches=false var_1=label var_2=? var_3=? var_4=? "; pre_compile_code_string="Data From: table=PathLabels row_spec=row_num row_var=next_label_ind set=from all_matches=false var_1=label var_2=? var_3=? var_4=? "; data_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["PathLabels"]$; row_spec=ROW_NUM; row_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].args["next_label_ind"]$$; set_data=0; all_matches=0; quiet=1; var_1=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["label"]$; var_2=NULL; var_3=NULL; var_4=NULL; }; VarIncr @[6] { desc="add to trial name"; flags=CAN_REVERT_TO_CODE; code_string="Name += \"->\" + label + \"_\" + state + \"->\" + next_state"; pre_compile_code_string="Name += \"->\" + label + \"_\" + state + \"->\" + next_state"; var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["Name"]$; expr { expr="\"->\" + label + \"_\" + state + \"->\" + next_state"; }; }; If @[7] { desc="assign output; if it's 7, then it's the end, if it's not, then assign it based on the label"; flags=CAN_REVERT_TO_CODE; code_string="if (next_label_ind==7)"; pre_compile_code_string="if (next_label_ind==7)"; cond { expr="next_label_ind==7"; }; true_code { name=; el_typ=ProgCode; el_def=0; AssignExpr @[0] { desc=; flags=CAN_REVERT_TO_CODE; code_string="curOutput = O_E"; pre_compile_code_string="curOutput = O_E"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["curOutput"]$$; expr { expr="O_E"; }; }; }; }; Else @[8] { desc=; flags=CAN_REVERT_TO_CODE; code_string="else"; pre_compile_code_string="else"; else_code { name="else_code"; el_typ=ProgCode; el_def=0; AssignExpr @[0] { desc=; flags=CAN_REVERT_TO_CODE; code_string="curOutput = \"O_\" + label"; pre_compile_code_string="curOutput = \"O_\" + label"; result_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["curOutput"]$; expr { expr="\"O_\" + label"; }; }; }; }; AssignExpr @[9] { desc="make sure has this output set"; flags=CAN_REVERT_TO_CODE; code_string="curTarget_actual = curOutput"; pre_compile_code_string="curTarget_actual = curOutput"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["curTarget_actual"]$$; expr { expr="curOutput"; }; }; If @[10] { desc="assign another target if there is one"; flags=CAN_REVERT_TO_CODE; code_string="if (oth_label_ind>=0)"; pre_compile_code_string="if (oth_label_ind>=0)"; cond { expr="oth_label_ind>=0"; }; true_code { name=; el_typ=ProgCode; el_def=0; DataVarProg @[0] { desc=; flags=CAN_REVERT_TO_CODE; code_string="Data From: table=PathLabels row_spec=row_num row_var=oth_label_ind set=from all_matches=false var_1=label var_2=? var_3=? var_4=? "; pre_compile_code_string="Data From: table=PathLabels row_spec=row_num row_var=oth_label_ind set=from all_matches=false var_1=label var_2=? var_3=? var_4=? "; data_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["PathLabels"]$; row_spec=ROW_NUM; row_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].args["oth_label_ind"]$$; set_data=0; all_matches=0; quiet=1; var_1=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["label"]$; var_2=NULL; var_3=NULL; var_4=NULL; }; AssignExpr @[1] { desc=; flags=CAN_REVERT_TO_CODE; code_string="curTarget_other = \"T_\" + label"; pre_compile_code_string="curTarget_other = \"T_\" + label"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["curTarget_other"]$$; expr { expr="\"T_\" + label"; }; }; SetUnitsVar @[2] { desc=; flags=CAN_REVERT_TO_CODE; code_string="set units var: unit_1=curTarget_other unit_2=? unit_3=? unit_4=? "; pre_compile_code_string="set units var: unit_1=curTarget_other unit_2=? unit_3=? unit_4=? "; input_data_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].args["input_data"]$; set_nm=0; offset=NULL; unit_1=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["curTarget_other"]$; unit_2=NULL; unit_3=NULL; unit_4=NULL; }; }; }; PrintExpr @[11] { desc="just for checking"; flags=OFF|CAN_REVERT_TO_CODE; code_string="Print (string)curInput"; pre_compile_code_string="Print (string)curInput"; expr { expr="(string)curInput"; }; debug=0; }; SetUnitsVar @[12] { desc="sets the input/output values in the data table"; flags=CAN_REVERT_TO_CODE; code_string="set units var: unit_1=curOutput unit_2=curTarget_actual unit_3=curInput unit_4=? "; pre_compile_code_string="set units var: unit_1=curOutput unit_2=curTarget_actual unit_3=curInput unit_4=? "; input_data_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].args["input_data"]$; set_nm=0; offset=NULL; unit_1=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["curOutput"]$; unit_2=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["curTarget_actual"]$; unit_3=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["curInput"]$; unit_4=NULL; }; PrintExpr @[13] { desc="just for checking"; flags=OFF|CAN_REVERT_TO_CODE; code_string="Print Name"; pre_compile_code_string="Print Name"; expr { expr="Name"; }; debug=0; }; AssignExpr @[14] { desc="assign group name"; flags=CAN_REVERT_TO_CODE; code_string="Group = \"Seq_\" + seq_no"; pre_compile_code_string="Group = \"Seq_\" + seq_no"; result_var=.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["Group"]$$; expr { expr="\"Seq_\" + seq_no"; }; }; DataVarProg @[15] { desc="assign the tiral name"; flags=CAN_REVERT_TO_CODE; code_string="Data To: table=input_data row_spec=cur_row set=to all_matches=false var_1=Name var_2=Group var_3=? var_4=? "; pre_compile_code_string="Data To: table=input_data row_spec=cur_row set=to all_matches=false var_1=Name var_2=Group var_3=? var_4=? "; data_var=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].args["input_data"]$; row_spec=CUR_ROW; row_var=NULL; set_data=1; all_matches=0; quiet=1; var_1=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["Name"]$; var_2=$.projects["SRN_midterm16"].programs.gp["InputGeneration"]["GenTrial"].vars["Group"]$; var_3=NULL; var_4=NULL; }; }; step_prog=NULL; step_n=1; doc { name="doc"; desc=; web_doc=0; wiki=; url="local"; full_url="local"; text_size=1; text=; html_text=; }; }; }; }; viewers { name="viewers"; el_typ=MainWindowViewer; el_def=0; MainWindowViewer @["Browser11"] { UserDataItem_List @*(.user_data_) { name="UserDataItem_List_179"; el_typ=UserDataItem; el_def=0; UserDataItem @["view_win_lft"] { name="view_win_lft"; value 8 0=0; val_type_fixed=0; }; UserDataItem @["view_win_top"] { name="view_win_top"; value 8 0=0.03033981; val_type_fixed=0; }; UserDataItem @["view_win_wd"] { name="view_win_wd"; value 8 0=1; val_type_fixed=0; }; UserDataItem @["view_win_ht"] { name="view_win_ht"; value 8 0=0.7791262; val_type_fixed=0; }; UserDataItem @["view_win_iconified"] { name="view_win_iconified"; value 1 0=0; val_type_fixed=0; }; UserDataItem @["view_splitter_state"] { name="view_splitter_state"; value 9 0="AAAA/wAAAAEAAAADAAAA6wAAAnYAAAGzAQAAAAcBAAAAAQE="; val_type_fixed=0; }; }; name="Browser11"; m_data=.projects["SRN_midterm16"]$$; cur_font_size=12; visible=1; win_name=".projects[\"SRN_midterm16\"] - SRN_midterm16.proj"; m_is_root=0; m_is_viewer_xor_browser=0; m_is_proj_viewer=1; m_is_dialog=0; toolbars { name="toolbars"; el_typ=ToolBar; el_def=0; ToolBar @["Application"] { UserDataItem_List @*(.user_data_) { name="UserDataItem_List_180"; el_typ=UserDataItem; el_def=0; UserDataItem @["view_win_visible"] { name="view_win_visible"; value 1 0=1; val_type_fixed=0; }; }; name="Application"; m_data=NULL; cur_font_size=12; visible=0; lft=0; top=0; o=Horizontal; }; }; frames { name="frames"; el_typ=BrowseViewerTaBase; el_def=0; BrowseViewerTaBase @["Navigator"] { name="Navigator"; m_data=NULL; cur_font_size=12; visible=1; root_typ=LeabraProject; root_md=NULL; m_root=$.projects["SRN_midterm16"]$; }; PanelViewer @["Editor"] { name="Editor"; m_data=NULL; cur_font_size=12; visible=1; }; T3PanelViewer @["T3Frames"] { UserDataItem_List @*(.user_data_) { name="UserDataItem_List_181"; el_typ=UserDataItem; el_def=0; UserDataItem @["view_panel_selected"] { name="view_panel_selected"; value 1 0=1; val_type_fixed=0; }; }; name="T3Frames"; m_data=NULL; cur_font_size=12; visible=1; panels { name="panels"; el_typ=T3Panel; el_def=0; T3Panel @["Network_1"] { name="Network_1"; m_data=NULL; cur_font_size=12; visible=1; root_view { name="root_view"; m_data=NULL; cur_font_size=12; m_transform=NULL; children { name="children"; el_typ=T3DataViewMain; el_def=0; }; }; bg_color {r=0.8: g=0.8: b=0.8: a=1: }; text_color {r=0: g=0: b=0: a=1: }; headlight_on=1; headlight_intensity=1; ambient_light=0; camera_params { field_of_view=45; near_distance=0.1; focal=5; far_distance=1000; }; stereo_view=STEREO_NONE; saved_views { name="saved_views"; el_typ=T3SavedView; el_def=0; T3SavedView @["Vw_0"] { name="Vw_0"; view_saved=1; pos {x=0.69875: y=0.6207051: z=1.955698: }; orient {x=0: y=0: z=1: rot=0: }; focal_dist=2.31462; }; T3SavedView @["Vw_1"] { name="Vw_1"; view_saved=0; pos {x=0: y=0: z=0: }; orient {x=0: y=0: z=1: rot=0: }; focal_dist=0; }; T3SavedView @["Vw_2"] { name="Vw_2"; view_saved=0; pos {x=0: y=0: z=0: }; orient {x=0: y=0: z=1: rot=0: }; focal_dist=0; }; T3SavedView @["Vw_3"] { name="Vw_3"; view_saved=0; pos {x=0: y=0: z=0: }; orient {x=0: y=0: z=1: rot=0: }; focal_dist=0; }; T3SavedView @["Vw_4"] { name="Vw_4"; view_saved=0; pos {x=0: y=0: z=0: }; orient {x=0: y=0: z=1: rot=0: }; focal_dist=0; }; T3SavedView @["Vw_5"] { name="Vw_5"; view_saved=0; pos {x=0: y=0: z=0: }; orient {x=0: y=0: z=1: rot=0: }; focal_dist=0; }; T3SavedView @["Vw_6"] { name="Vw_6"; view_saved=0; pos {x=0: y=0: z=0: }; orient {x=0: y=0: z=1: rot=0: }; focal_dist=0; }; T3SavedView @["Vw_7"] { name="Vw_7"; view_saved=0; pos {x=0: y=0: z=0: }; orient {x=0: y=0: z=1: rot=0: }; focal_dist=0; }; T3SavedView @["Vw_8"] { name="Vw_8"; view_saved=0; pos {x=0: y=0: z=0: }; orient {x=0: y=0: z=1: rot=0: }; focal_dist=0; }; T3SavedView @["Vw_9"] { name="Vw_9"; view_saved=0; pos {x=0: y=0: z=0: }; orient {x=0: y=0: z=1: rot=0: }; focal_dist=0; }; }; }; }; }; }; docks { name="docks"; el_typ=ToolBoxDockViewer; el_def=0; ToolBoxDockViewer @["Tools"] { UserDataItem_List @*(.user_data_) { name="UserDataItem_List_182"; el_typ=UserDataItem; el_def=0; UserDataItem @["view_win_lft"] { name="view_win_lft"; value 8 0=0; val_type_fixed=0; }; UserDataItem @["view_win_top"] { name="view_win_top"; value 8 0=0.03276699; val_type_fixed=0; }; UserDataItem @["view_win_wd"] { name="view_win_wd"; value 8 0=0.05694444; val_type_fixed=0; }; UserDataItem @["view_win_ht"] { name="view_win_ht"; value 8 0=0.6674758; val_type_fixed=0; }; UserDataItem @["view_win_iconified"] { name="view_win_iconified"; value 1 0=0; val_type_fixed=0; }; UserDataItem @["view_visible"] { name="view_visible"; value 1 0=1; val_type_fixed=0; }; }; name="Tools"; m_data=NULL; cur_font_size=12; visible=1; win_name=; dock_flags=DV_MOVABLE|DV_FLOATABLE; dock_area=1; }; }; }; }; save_view=1; save_as_only=0; auto_name=1; last_change_desc="Fixed gaps in describing how to monitor Hidden layer activity, and explicitly specified the steps for producing a cluster plot. Eliminated Section 5, because the lab's too long."; tree_state{ .;.docs;.wizards;.wizards[0];.ctrl_panels;.data;.data.gp[0];.data.gp[1];.data.gp[2];.data.gp[3];.programs;.programs.gp[0];.programs.gp[0][1];.programs.gp[0][1].prog_code;.programs.gp[0][1].prog_code[5];.programs.gp[0][1].prog_code[5].loop_code[3];.programs.gp[0][1].prog_code[5].loop_code[3].meth_args[0];.networks; }; networks { name="networks"; el_typ=LeabraNetwork; el_def=0; LeabraNetwork @["Network_9"] { UserDataItem_List @*(.user_data_) { name="UserDataItem_List_213"; el_typ=UserDataItem; el_def=0; UserDataItem @["cos_err"] { name="cos_err"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["norm_err"] { name="norm_err"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["ext_rew"] { name="ext_rew"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["minus_output_name"] { name="minus_output_name"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["rt_cycles"] { name="rt_cycles"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["tot_cycle"] { name="tot_cycle"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["phase"] { name="phase"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["quarter"] { name="quarter"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["sse"] { name="sse"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["output_name"] { name="output_name"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["trial_name"] { name="trial_name"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["group_name"] { name="group_name"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["total_trials"] { name="total_trials"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["time"] { name="time"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["cycle"] { name="cycle"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["tick"] { name="tick"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["trial"] { name="trial"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["group"] { name="group"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["epoch"] { name="epoch"; value 1 0=1; val_type_fixed=1; }; UserDataItem @["batch"] { name="batch"; value 1 0=1; val_type_fixed=1; }; }; name="Network_9"; desc=; specs { name="specs"; el_typ=LeabraLayerSpec; el_def=0; LeabraLayerSpec @["HiddenLayer"] { name="HiddenLayer"; is_used=0; desc=; unique{ }; children { name="children"; el_typ=LeabraLayerSpec; el_def=0; LeabraLayerSpec @["Input_Output"] { name="Input_Output"; is_used=0; desc=; unique{ }; children { name="children"; el_typ=LeabraLayerSpec; el_def=0; }; lay_inhib {on=1: gi=1.8: ff=1: fb=1: fb_tau=1.4: max_vs_avg=0: ff0=0.1: fb_dt=0.7142857: }; unit_gp_inhib {on=0: gi=1.8: ff=1: fb=1: fb_tau=1.4: max_vs_avg=0: ff0=0.1: fb_dt=0.7142857: }; multi_gp_inhib {on=0: gi=1.8: ff=1: fb=1: fb_tau=1.4: max_vs_avg=0: ff0=0.1: fb_dt=0.7142857: }; multi_gp_geom {size={x=3: y=3: }: st_off={x=-1: y=-1: }: sub_size={x=1: y=1: }: wrap=1: }; lay_gp_inhib {on=0: gi=1.8: ff=1: fb=1: fb_tau=1.4: max_vs_avg=0: ff0=0.1: fb_dt=0.7142857: }; avg_act {targ_init=0.15: fixed=0: use_ext_act=0: tau=100: adjust=1: dt=0.01: }; inhib_adapt {on=0: tol_pct=0.25: trial_interval=100: tau=200: dt=0.005: }; inhib_misc {net_thr=0: thr_rel=1: self_fb=0: self_tau=1.4: fb_up_immed=0: self_dt=0.7142857: }; clamp {hard=1: gain=0.2: }; decay {trial=1: }; del_inhib {on=0: prv_trl=0: prv_q=0: }; lay_lrate=1; cos_diff { avg_tau=100; lrate_mod=0; lrmod_fm_trc=0; lrmod_z_thr=-1.5; set_net_unlrn=0; avg_dt=0.01; avg_dt_c=0.99; }; lstats { hog_thr=0.3; dead_thr=0.01; }; }; }; lay_inhib {on=1: gi=1.8: ff=1: fb=1: fb_tau=1.4: max_vs_avg=0: ff0=0.1: fb_dt=0.7142857: }; unit_gp_inhib {on=0: gi=1.8: ff=1: fb=1: fb_tau=1.4: max_vs_avg=0: ff0=0.1: fb_dt=0.7142857: }; multi_gp_inhib {on=0: gi=1.8: ff=1: fb=1: fb_tau=1.4: max_vs_avg=0: ff0=0.1: fb_dt=0.7142857: }; multi_gp_geom {size={x=3: y=3: }: st_off={x=-1: y=-1: }: sub_size={x=1: y=1: }: wrap=1: }; lay_gp_inhib {on=0: gi=1.8: ff=1: fb=1: fb_tau=1.4: max_vs_avg=0: ff0=0.1: fb_dt=0.7142857: }; avg_act {targ_init=0.15: fixed=0: use_ext_act=0: tau=100: adjust=1: dt=0.01: }; inhib_adapt {on=0: tol_pct=0.25: trial_interval=100: tau=200: dt=0.005: }; inhib_misc {net_thr=0: thr_rel=1: self_fb=0: self_tau=1.4: fb_up_immed=0: self_dt=0.7142857: }; clamp {hard=1: gain=0.2: }; decay {trial=1: }; del_inhib {on=0: prv_trl=0: prv_q=0: }; lay_lrate=1; cos_diff { avg_tau=100; lrate_mod=0; lrmod_fm_trc=0; lrmod_z_thr=-1.5; set_net_unlrn=0; avg_dt=0.01; avg_dt_c=0.99; }; lstats { hog_thr=0.3; dead_thr=0.01; }; }; }; param_seqs { name="param_seqs"; el_typ=ParamSeq; el_def=0; }; layers { name="layers"; el_typ=LeabraLayer; el_def=0; pos {x=0: y=0: z=0: }; pos2d {x=0: y=0: }; max_disp_size {x=0: y=0: z=0: }; max_disp_size2d {x=0: y=0: }; }; weights { name="weights"; el_typ=Weights; el_def=0; }; flags=MANUAL_POS|ABS_POS|BUILD_INIT_WTS; unit_vars_type=LeabraUnitVars; con_group_type=LeabraConGroup; auto_build=AUTO_BUILD; auto_load_wts=NO_AUTO_LOAD; auto_load_file=; brain_atlas_name=; train_mode=TRAIN; wt_update=ON_LINE; small_batch_n=10; stats { sse_unit_avg=0; sse_sqrt=0; cnt_err_tol=0; prerr=0; }; threads { run_time {name="TimeUsedHR_130": s_used=0: n_used=0: avg_used={avg=0: sum=0: n=0: }: }; sync_time {name="TimeUsedHR_131": s_used=0: n_used=0: avg_used={avg=0: sum=0: n=0: }: }; total_time {name="TimeUsedHR_132": s_used=0: n_used=0: avg_used={avg=0: sum=0: n=0: }: }; n_wake_in_sync=0; run_time_pct=0; sync_time_pct=0; wake_in_sync_pct=nan; }; cuda { sync_units=0; sync_cons=0; min_threads=32; max_threads=1024; cons_per_thread=2; timers_on=0; n_threads=32; }; usr1_save_fmt=FULL_NET; wt_save_fmt=TEXT; n_units=1; n_cons=0; max_prjns=1; max_disp_size {x=1: y=1: z=1: }; max_disp_size2d {x=1: y=1: }; times { quarter=25; gate_cyc=18; deep_cyc=5; time_inc=0.001; minus=75; plus=25; total_cycles=100; }; lstats { trg_max_act_crit=0.5; off_errs=1; on_errs=1; agg_unlearnable=0; }; net_misc { spike=0; deep=0; bias_learn=0; trial_decay=0; diff_scale_p=0; diff_scale_q1=0; wt_bal=0; lay_gp_inhib=0; inhib_cons=0; }; deep { on=0; ctxt=0; raw_net=0; mod_net=0; raw_qtr=0; }; rel_netin { on=1; trl_skip=10; epc_skip=10; }; }; }; };