// 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.
==== Question 1: Does it train? ====

==== Question 2: What do you think would happen if you had a sequence like ABCBA? Why? ====
=== Section 2. First order dependencies. === 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. * 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.
==== Question 3: Was it able to learn this sequence? Why or why not? Explain any discrepancy between what you expected and what you observed. ====
=== Section 3. Adding a context layer. === As you should have observed, the hidden layer network model had trouble learning the higher order sequence (if it did you must have done something wrong setting up the Network or did not create a higher order sequence, because it really has no way of keeping track of previous information). As you proceed through this section we will explore how the context layer allows the network to discern which of several outputs is required given a single input, based on the context. We will learn that second and third order dependencies are harder for the network to learn but that adjusting the rate at which the network takes activity from the hidden layer can help. * Go back to the wizard again 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.
==== Question 4: ==== Is the network able to learn the sequence this time? Explain how the Context layer allows learning of sequences with higher orders.
=== Section 4. Second-order dependencies. === 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. * Create a second-order (and third-order if you are brave) sequence. See whether the current network can learn this task (ie whether it can get to zero errors, and also how long it takes to do so). Note: if you are having trouble getting your network to learn a higher order contingency, besides trying to manipulate parameters you should make sure that you didn't just get unlucky with the initial weights. (Same thing if your network seems to have learned higher order contingencies very easily, you might have just gotten lucky!). You should run a batch of networks as specified above (before Qu 4).
==== Question 5: ==== Is the network able to learn the sequence this time? Why or why not? And if so, in how many epochs?
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). * 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.
==== Question 6: ==== What values of 'fm_hid' and 'fm_prv' allow your network to learn the second order dependency of your previous sequence from Section 2? If it learned already, what values allow it to learn with reduced training time (number of epochs)? (Optional: if you tried a third order dependency, what values are needed to more reliably learn this or to optimize the speed at which it learns?)

==== Question 7: Give an account for why these parameters change the network's ability to respond appropriately given different sequential dependencies. ====
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. * First, we need to make sure that we are monitoring Hidden layer activity. Click on the border of the hidden layer with the red arrow in the right view, or equivalently, the 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).
==== Question 8: In your own opinion, how many truly distinct hidden layer patterns of activity are you seeing? (Remember, the total horizontal distance that you have to traverse from two distinct pattern-names to their common branching point in the cluster plot is equal to the similarity of these patterns.) Are identical trial names (letters) always clustered together? If not, why not, and does this represent a failure of the model, or does it make sense? ====

==== Question 9: Bonus: What is the greatest order of dependency that you can still train the network on? (This is your chance to show off! ) What values of 'fm_hid' and 'fm_prv' did you need to use? Feel free to make any other customizations you think may help - but be sure to document them here.====
=== Section 5. Learning a grammar. === Up until now we trained the network to predict items in one fixed sequence. However, the brain often faces situations in which, given a certain stimulus history, multiple possible events could happen. For example during speech perception we produce multiple expectations of what might be said next.
A set of rules of which sequences are valid are called a grammar. We can create a network representing this grammar which can be generated from a system a Finite State Automaton (FSA). For details check the lecture slides.
Next, we will generate sequences according to a certain grammar and then train the network on these sequences. Although the network has no access to the grammar itself, the SRN can keep track of sequential dependencies and thus learn to expect certain outcomes associated with that grammar. Note that because multiple sequences are valid the network will never be able to predict the outcome perfectly. In our case, each letter can be followed by one of two other letters. Thus, the best our network can achieve is 50% accuracy, or an 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).
Before we get going, we first have to do some changes to the network for purely technical reasons which I wont go into as they are quite boring, so bear with me: * If your network geometry isn't already 6X1 for input and Output layers, change the geometry of the Input layer ( 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 and click on 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.
==== Question 10: What do you observe? ====
* Take a moment to consider what SRNs do and how they function.
==== Question 11: What are some examples of what, behaviorally, they might capture? ==== a"; html_text="

Midterm Miniproject: Simple Recurrent Networks (SRNs)

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.


Question 1: Does it train?



Question 2: What do you think would happen if you had a sequence like ABCBA? Why?


Section 2. First order dependencies.

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.


Question 3: Was it able to learn this sequence? Why or why not? Explain any discrepancy between what you expected and what you observed.


Section 3. Adding a context layer.

As you should have observed, the hidden layer network model had trouble learning the higher order sequence (if it did you must have done something wrong setting up the Network or did not create a higher order sequence, because it really has no way of keeping track of previous information). As you proceed through this section we will explore how the context layer allows the network to discern which of several outputs is required given a single input, based on the context. We will learn that second and third order dependencies are harder for the network to learn but that adjusting the rate at which the network takes activity from the hidden layer can help.

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.


Question 4:

Is the network able to learn the sequence this time? Explain how the Context layer allows learning of sequences with higher orders.

Section 4. Second-order dependencies.

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.

Note: if you are having trouble getting your network to learn a higher order contingency, besides trying to manipulate parameters you should make sure that you didn't just get unlucky with the initial weights. (Same thing if your network seems to have learned higher order contingencies very easily, you might have just gotten lucky!). You should run a batch of networks as specified above (before Qu 4).


Question 5:

Is the network able to learn the sequence this time? Why or why not? And if so, in how many epochs?

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).


Question 6:

What values of 'fm_hid' and 'fm_prv' allow your network to learn the second order dependency of your previous sequence from Section 2? If it learned already, what values allow it to learn with reduced training time (number of epochs)? (Optional: if you tried a third order dependency, what values are needed to more reliably learn this or to optimize the speed at which it learns?)



Question 7: Give an account for why these parameters change the network's ability to respond appropriately given different sequential dependencies.


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.


Question 8: In your own opinion, how many truly distinct hidden layer patterns of activity are you seeing? (Remember, the total horizontal distance that you have to traverse from two distinct pattern-names to their common branching point in the cluster plot is equal to the similarity of these patterns.) Are identical trial names (letters) always clustered together? If not, why not, and does this represent a failure of the model, or does it make sense?



==== Question 9: Bonus: What is the greatest order of dependency that you can still train the network on? (This is your chance to show off! ) What values of 'fm_hid' and 'fm_prv' did you need to use? Feel free to make any other customizations you think may help - but be sure to document them here.====

Section 5. Learning a grammar.

Up until now we trained the network to predict items in one fixed sequence. However, the brain often faces situations in which, given a certain stimulus history, multiple possible events could happen. For example during speech perception we produce multiple expectations of what might be said next.
A set of rules of which sequences are valid are called a grammar. We can create a network representing this grammar which can be generated from a system a Finite State Automaton (FSA). For details check the lecture slides.
Next, we will generate sequences according to a certain grammar and then train the network on these sequences. Although the network has no access to the grammar itself, the SRN can keep track of sequential dependencies and thus learn to expect certain outcomes associated with that grammar. Note that because multiple sequences are valid the network will never be able to predict the outcome perfectly. In our case, each letter can be followed by one of two other letters. Thus, the best our network can achieve is 50% accuracy, or an 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).
Before we get going, we first have to do some changes to the network for purely technical reasons which I wont go into as they are quite boring, so bear with me:

Question 10: What do you observe?



Question 11: What are some examples of what, behaviorally, they might capture?

"; }; }; 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; }; }; }; };