Network view

From emergent
(Redirected from NetView)
Jump to: navigation, search
Reference info for type NetView: Wiki | Emergent Help Browser

This is a 3d graphical view of a Network, showing its Layers Units and Projections. It is controlled by a network view control panel.

The Network View Control Panel

There is a middle panel tab associated with every 3d network view, which provides various parameters for controlling the network display. There are 3 main segments:

  • Display parameters at the top (font sizes, display style etc) (mouse over to get more info, and explore!)
  • Network variable selector -- what value to display in the units in the network view (activations vs. weights vs. netinputs etc). If you select one of the weight variables (e.g., r.wt for receiving weights into a selected unit; s.wt is for sending weights out), you then need to use the red arrow tool in the viewer to select a unit to view -- it will turn green, and you should be able to see its weights.
    • In the caption below the network the value of the selected unit will be displayed but if you are viewing r.wt or s.wt clicking a unit will change the display to show all the sending/receiving units for the newly selected unit. To see values without changing the selected unit hold the ALT key while using the mouse to select a unit.
  • Spec selector and viewer -- this is very handy for seeing where your specs are used in the network -- try clicking on the HiddenLayer and then Input_Output -- note that the green layer border changes color indicating which layers are using these layer specs. You can also use the context menu to edit the specs right there.

Changing the Network Configuration

You can configure the network layout interactively in the viewer, including repositioning the layers, and orienting the network display relative to other objects in the view (which we postpone for later, when this arises).

To do this, select the red arrow tool, and you'll see that transparent purple arrow objects now appear on the layers, and a fancy box thing appears on the network text box. These are the manipulation controls. Try clicking on one of the horizontal arrows for the Output layer, and moving it around. This moves within the "horizontal" plane (the X-Y plane for the network). The vertical arrows not surprisingly move in the vertical dimension (the Z axis for the network).

How to Select and Operate on View Elements

Layers are selected by clicking on their green border (clicking inside the layer where the units are does not work).

Projections are selected by clicking directly on the projection arrow. To make it easier to select and view, change the Prjn Width parameter at the top of the control panel from the default of .002 to .005 or .01 (or whatever you want!).

The Network is selected by clicking on the green border of the network text area at the very bottom of the network display.

Selecting updates the middle edit panel to show the selected item, which can then be edited.

You can also activate the context menu for that item once it is selected, by doing right mouse button or mac-command-mouse on the mac. This context menu has a few extra view-specific elements in it, such as controlling how layers display information.

Making Projections Between Selected Layers

You can select multiple layers by using shift while clicking. If you select two layers, you can make a projection between them by doing context menu/ConnectFrom or ConnectBidir:

  • ConnectFrom -- the first layer selected is the receiver, and the second is the sender.
  • ConnectBidir -- order doesn't matter because it is bidirectional.

Replaying View History

See NetView History -- The netview automatically saves a window of recently displayed information ("history") and you can use VCR-like controls to move through this history to replay prior states -- this is very important for debugging and understanding the detailed behavior of your network.

Comparing Two Variable Values in the View

See Snapshot for how to simultaneously view two variables at once in the view.

Updating the Network View in Programs

Each of the standard programs for different algorithms (xxTrial, xxCycle, etc) has an update_net_view variable that determines whether the network view is updated at that level of processing.

For example, in order to view the network settle, one must do more than set the step size to LeabraCycle. In the program code for LeabraCycle, there is a boolean variable update_net_view which defaults to false. This is passed to the NetUpdateView function. Change this variable to true, and the network view will update at the end of each cycle. If this is set to false, the network view will not automatically update, regardless of step size.

The Network Text Data

Beginning with Emergent 8.5 the text display of network values was moved above the 3d network view.

The variables displayed, the order in which they appear and the width of each variable field are controlled in the Network View control panel, click on the "Net State Values" tab.

The display can be turned off by unchecking the Net Text checkbox at the top of the Network View control panel.

Also, Emergent 8.5 includes a dedicated network monitor and variables added to that monitor can be displayed in the Network Text display along with the preselected variables. Adding variables to the Network Monitor adds them to the "Net State Values" list of variables.


Displayed at the bottom of the network view by default is a list of various counters (epoch, trial, etc) and statistics (sse, etc) that are updated as the network itself is updated. As of version 4.0.19, you can move the location, scale, orientation etc of this text display by using the same kind of dragger box used to move other objects around the display.

There is also a PlaceNetText function available under the NetView menu button on the network and network view, which will locate the net text in one of several standard locations.

You can also turn the network view display off entirely, using the Net Txt button on the network control panel.

You can also filter what information gets shown in the network text display, in the User Data editor on the Network object -- it comes pre-populated with check boxes for each viewable item -- uncheck to turn off. Note that you need to trigger a refresh of the view to see the results when you are done editing -- just hit the F5 key or toggle between tabs, etc.

Viewing Weight Lines and Weight Projections Through Multiple Layers

Clicking on the wt lines flag in the netview control panel will display colored lines into the currently selected unit, representing its weight values. If the s.wt flag is set, then it shows the sending weights from this unit to the other units it sends to; otherwise, it shows the receiving weights into the unit. The Width and Thr parameters control the display of the lines -- the width of the line, and a threshold for not showing weights below a given value.

The Wt Prjn field allows you to select a layer to project weights onto -- typically this is an input layer in the network, and the key feature of this display mode is that it multiplies weights through multiple layers to get to the selected layer. For example, if you have an input layer, then 2 hidden layers in sequence, followed by an output layer, then you can select units at any level in this hierarchy and their weights will be projected all the way down to the input layer. Thus, if you select a unit in the 2nd hidden layer, its weights to each of the units in the first hidden layer will be multiplied times each of those first hidden layer units weights to the actual input layer. In other words. the first set of weights from the input to hidden are then weighted times the second set of weights from the first hidden to the second hidden (and so on). Often this results in a "muddy" picture on the input layer (like adding too many colors to a painting) -- setting the Thr threshold value higher can help by only showing the strongest weights.

As long as the Wt Prjn field is set, then you can select the wt_prjn unit display variable, and it will show the project from the selected unit onto every other unit.

See Activation Based Receptive Field for an alternative way of capturing similar kinds of information.

2D vs. 3D Layer Layout

In the netview control panel, you can select either the standard 3D layer display, or a 2D layer display. This 2D display projects all layers onto the same flat x-y plane. There are special 2d position values on layers in the network, which store their positions for the 2D view, so you can easily switch back and forth between 2D and 3D views (although typically it is better to customize the view a bit for each different type, so having two dedicated views may be a better idea). You can move the layers around just as in 3D (only restricted to 2D, which is easier for most people to do).