Before you run the network, you need to create logs of the results of training and testing and views that allow you to examine the contents of these logs. We'll create a Log with a GraphLogView to follow the SE_Stat over epochs and Log with a GridLogView to follow the activations of the output units at test.
To create the GraphLogView, select .logs / New / GraphLog, and hit Ok in the New dialog. It will automatically prompt you for which process you want to update this view, which should be Epoch_0. This will cause the GraphLogView to get information from this process about what is being monitored there: the SE_Stat, summed across output units and across patterns in the epoch. By default the epoch number will be used at the X axis, so this GraphLogView is now ready.
To create the GridLogView, select .logs / New / GridLog, and specify that Trial_1 should update this log. Again, the header for the data that are being monitored is automatically retrieved.
As an advanced example of setting up a grid log, we now describe how you may be able to set up a special GridLog associated with your Test process (Epoch_1) that displays the weights in your network at the end of each test that you run. This may or may not be something you really need to do depending on your goals. But the example shows some advanced features that are useful and powerful, so we go through it to expose you to them.
1a. Create a monitor stat for each projection. Make sure r.wt is the
current variable displayed, and that you are in Select
mode
instead of View
mode. Now select the projection in the netview
which connects the hidden and output layers. Then click Monitor
Values / new. For In Process, select EpochProcess /
Epoch_1, and for Loop/Final select FINAL, then OK. We
selected Final here since we want to log the values of the weight at
the end of each epoch.
1b. Repeat step 1 selecting the input->hidden layer projection instead.
2. Create a new GridLog with .logs / New / GridLog, then OK the popup, and select Epoch_1 as the updater for this log.
3. Now comes the interesting part. We're going to re-arrange this display so it displays the weights in a way that better reflects the network's structure. To do this we are going to change the geometry and layout of the weight matrices for each projection. In the GridLog there is a "header" at the top associated with each column in the log (the sum-squared error, the EpochCounterStat (labeled epoch) and each of the two projections you are monitoring, each labeled wt). We can manipulate these headers with the mouse to rearrange their layout.
3a. Use the middle button (or shift plus left button) to reshape the layout. We first want to reshape the hidden-to-output weights to be 2 units wide by 4 units tall, so that each row of units will be the weights from one of the four output units. Move the mouse to the right hand side of the first wt grid, and middle-click and hold it down while dragging upwards and to the left into a shape that is 4 tall and 2 wide -- it will not let you configure a shape that doesn't hold all 8 of the weight values, so you need to keep that in mind as you configure. It may take a few tries to get this right.
3b. Next we want to reshape the input-to-hidden weights to be 4 units wide by 2 tall, so that gain one row represents the weights for one receiving unit. Do this using the right mouse button. You can also use the left mouse button to move the columns around, and if you want to relabel the columns, that can be done by right-mouse-button clicking on the headers.
4. Then, press Run in the test epoch process control panel to see the weights! To verify the weigh values and understand how they correspond to those in the NetView, click on r.wt in the NetView, (make sure you are in View mode), and select the first hidden unit. The weights from the input units should be the same as those in the GridLog for the first row of the bottom set of weights. Similarly, the second hidden unit's weights are those in the second row of the bottom set of weights. The next set of weights are best viewed using s.wt to look at the sending weights from the hidden units to the output units. The sending weights for the first hidden unit are shown in the top row of the top set of weights in the GridLog. Those for the second hidden unit are in the second row. This will all be much clearer in a fully trained network!