These are quick pointers to various functionality that may not otherwise be obvious. Please add things you discover so others may benefit!
- Activation Based Receptive Field -- how to create and use this useful statistic, which can determine selectivity of hidden units relative to input/output patterns (or even other hidden units).
- Algorithm information: See Network Algorithm Guides for descriptions, pseudocode, and parameters for the various algorithms available in emergent, including Leabra.
- Attaching a .proj file to a Bugzilla bug can be accomplished by first filing the bug report, then viewing the bug and clicking "Create new attachment." For the content type, select the "Manual" radio dial and enter
model/proj. Click submit and you're done.
- 3d Animation of your model's behavior.
- "background run" or "batch run" -- how to run a project without any gui (nogui run) -- requires a startup program or startup script that controls the entire run.
- Best Practices -- ideas for how to best organize complex projects.
- Run emergent on a Chromebook
- Linear_Classification_with_SLP -- how to run a simple single layer perceptron (backpropagation network) for the two-class classification of eight-dimensional data (with normalization).
- Column widths in datatable: adjust by dragging on right edge of header; save using View/Save View (saves all view parameters)
- Compare variables within the Network View -- use one of the Snapshot functions on the Network and turn on the Snap Bord display in the network view.
- CSS console: The console typically floats below the main Project window, or it can be docked into the root window via a Preferences selection. The console is where warning, info, and error messages are sent, and is particularly important when running Programs.
- copy data from one DataTable to another: CopyCell method, or sel rows (DataSelectRowsProg), sel cols (DataSelectColsProg) in data proc toolbox.
- Diff Compare -- finding out what is different across two objects, including easy selection of edits to eliminate diffs.
- Document editing formatting (wiki text and ta: urls)
- Getting a list of files in a directory: taDataGen -- see GetDirFiles function
- if your Graph variable On button is getting turned OFF mysteriously: often this is due to removing all the columns of a data table and then rebuilding that table with new columns, which often are the same ones it had before. The problem is that the graph view structure gets rebuilt when things get reset, so it turns off the display because there is no column there anymore. The solution is to prevent the view rebuild during the transitional state: bracket the whole operation of removing and rebuilding in StructUpdate calls.
- Grid View of Weights -- make a "receptive field" plot of the weights for a layer of units.
- Grouping: all the grouped items in a group spec must be listed at the start together. Remember that GROUP for the agg op (aggregation operator) means that all the rows for each different value that shows up in the given column of the source data table will be grouped together in the resulting output data table.
- Image Data -- how to deal with images in data tables
- Importing Data -- how to import data into a data table e.g., for use in training a network.
- InputData -- everything you need to know about how input patterns from the input data table are applied to the network.
- Keyboard shortcuts -- become more efficient at using emergent by studying these
- Lesion - remove individual cell or a group of cells (specified by percentage of cell numbers in a layer) and monitor the performance degradation of the network
- Local variables in Programs -- you aren't restricted to the global vars and args -- the
loc varsin the
Var/Funtoolbox can be put anywhere in a program (especially useful for Functions) to define new variables.
- Logging Output layer in OutputData can be done by right clicking on TrialMonitorTest-objs-trial_netmon and selecting Layer from the drop down menu. FYI, going to the network layer and clicking Monitor Var will not make the layer monitored\logged in the OutputData.
- Math on Data -- how to perform math operations on data in a datatable (very useful for data analysis)
- Matrix from DataTable -- how to access/modify Matrix objects within DataTable objects
- Monitor Data -- how to record or monitor data from the network or any other kind of object when it is being trained -- also look here if you get config errors in NetMonitor, TrialMonitor, or EpochMonitor
- Movies -- how to make a movie of your network in action
- Multiple Input Data Tables -- how to train or test a network on multiple different input data tables.
- nogui run -- how to run a project without any gui in the background -- requires a startup program or startup script that controls the entire run.
- Normalization -- how to normalize a dataset
- Param Search -- support for automatic parameter searching.
- PDP++ Project Conversion -- short version: you must remove units from PDP++ Networks before loading them into emergent, then hit Convert button at bottom of Project editor panel.
- Plugins -- how to make fast C++ code compiled extensions to the software that build on the existing codebase and are easy and quick to build..
- Programs replace Scripts, Processes and Stats from PDP++. See Programs for general information on creating, initializing, and running your programs. Program Tips provide solutions to common programming problems.
- Projection selecting/viewing in Network View -- increase the Prjn Width from default of .002 to .005 or even .01 -- this makes the lines much easier to see.
- Publish Projects, Programs and Patches on this or other wikis: Web Publishing
- How to convert project from using config tables to param sets LeabraFlex
- Save View -- save the overall "view" configuration of your project window.
- Server Protocol -- using emergent in a client / server mode through sockets
- SSH -- tips for using emergent over SSH with X-forwarding.
- Signals -- "kill" signals recognized by the program (when running in the nogui background mode and otherwise unreachable) -- basically just USR1 or USR2 or ALARM, all of which will cause a project recover file to be saved, which can then be loaded to check out what is going on with the project.
- Small screen -- tips for making the most of limited screen real estate.
- Startup program -- how to make an automated program that will auto-run when the project is loaded. This includes info on how to set command-line arguments that can be passed to the project to set various parameters -- very convenient for exploring parameter space. The GUI has a 'run on STARTUP' checkbox available for each program in the ‘program control’ panel. Most projects have a “startup” program that runs automatically when emergent is run with the -nogui switch from the command line, but are disabled when the gui is active.
- Stop program code from running. In some situations pressing Stop/Abort will not stop a program from running, even if it is generating warning/error messages. In order to stop it you will need to add a Stop/Step program element at some point in your program.
- Making Test Programs for testing your network during or after training.
- Thread Params -- how to configure parallel threading on multi-CPU machines.
- TopoWtsPrjnSpec -- when and how to use the TopoWtsPrjnSpec for creating soft-biasing topological relations between sending and receiving layers
- URL (uniform resource locator) syntax for Documents
- Virtual Environment construction and manipulation.
- Weights, accessing in Programs / Css:
network.layers.LayerName.units[un_no].recv[prjn_no].SafeCnName(cn_no, "wt")-- the sending unit is .SafeUn(cn_no). See Unit for more info.
- Wiki style syntax for Document editing formatting
- Web Publishing -- publish Projects, Programs and Patches on this or other wikis.
- emergent won't start. See Emergent Won't Start debugging tips.