PDPtool Release Notes Current Release Number : 2.07 [see end of file for latest changes] Release Date : 1/29/13 This file accompanies the latest release of the pdptool software suite and tracks changes since release of version 2.0. The latest release is contained in a zip file called pdptool.zip in the directory: http://www.stanford.edu/group/pdplab/pdptool The latest release notes are available in Releasenotes.txt in the same directory. Previous releases and release notes are available in files whose name includes the release number (e.g. pdptool_v2.01.zip). NOTE: In the current release, hitting the 'stop' button in the rbp program during training or testing can couse errors and crashes. We are working on correcting this problem. Please direct bug reports, questions, or comments to: pdplab-support@stanford.edu What's new in pdptool 2.0? ========================= (1) 'Fast' option for running train process is available for bp,srn and rbp models. This makes use of compiled C code that runs several times faster than the matlab interpreted code. To turn on the fast mode for network training, click the 'fast' option in the train window. This option can also be chosen when calling the runprocess command from a script or from the command prompt, by including the attribute-value pair ('fastrun',1) as arguments to the runprocess command, as in a command like the following: runprocess('process','train','fastrun',1,'granularity','epoch','count',1); In fast mode, network output logs and display updating can only be done at the epoch level of granularity, as reflected in the ('granularity','epoch') attribute-value pair in the call above. Learning can still occur at the pattern or epoch level (this is determined by the 'lgrain' attribute under training options). The 'cascade' option of building activation gradually in the bp and srn programs is also not available in fast mode. (2) Better organized gui features in the network create window.The script panel is now resizeable. (3) All trainoptions and testoptions windows have labels for training parameters that correctly match the variable name for the parameter. e.g training parameter nepochs is a field of struct net.trainopts.In trainoption gui window, the parameter is now labeled as 'nepochs'. A brief description of the parameter is now available as a pop-up tooltip feature on mouse over action. (4) Bug fixes with loadweights,output logging, anneal schedule logging. A complete list can be provided on request. (5) An 'about' window available in the 'Help' menu of main pdp window. (6) A new command is available for checking version information. Type pdptool_version on the MATLAB command prompt to get a brief description of the version you are running. This command also takes string arguments for specific information. The acceptable arguments are - 'release','date','description','support'.e.g pdptool_version('release') returns the release number.See help pdptool_version for more information. Change log for minor revisions: Version 2.01: - corrected a problem in 'fast' mode that led to a memory leak on linux in version 2.0. Version 2.02: - Fixed a bug in the bp, and srn programs that was causing tss, tce values to accumulate when network was trained in nogui mode. - Modified implementation of saveweights and loadweights for saving/loading weight matrices in text mode. This change will not have any effect on existing weight files that were saved/loaded in binary (.mat) form. However, if any existing scripts use ascii .wt files that have been saved in a prior release, you will need to modify the loadweight command to read in weights saved with the previous version. The syntax for reading in old format is loadweights(,'type','old-ascii'); Please note that this option cannot be specified through the gui interface. In other words, you will have to use the command form of loadweights to read weight files saved in old format. - Fixed an issue with newstart command that was not setting the random generator correctly. - Adjusted the code to ensure that a screen update occurs at the completion of stepping or running either the train or test processed. Version 2.03: - Fixed residual memory leak on linux in 'fast' mode. - Fixed a requirement gap in the implementation of display state for cs program by removing checkbox for 'Test all' in network viewer window when pattern set is present. Version 2.04: - 'Fast' mode for running train/test process is now a training and testing parameter for network types bp,srn and rbp. This is now a net.trainopts and net.testopts field called fastrun. In gui mode, the 'fast' checkbox is no longer available in the network viewer. User can set this flag by opening the 'options' window and setting training or testing parameters or using the settrainopts/settestopts command. Consequently, the runprocess command will not accept 'fastrun' as a parameter. Instead, you can turn on fast mode with the settrainopts function call: settrainopts ('fastrun',1); - Added 3d plotting capabilities in the plot module. To activate this mode, check the 'Use 3D plot' option and set values for the azimuth and elevation parameters in the 'Set plot options' gui module. Azimuth and elevation determine the perspective on the 3d plot. Good values are az = 4 and el = 4. The 'Set plot options' module is accessed through the 'Set write output options' module, which in turn is accessed through the 'options' under Train or Test in the network viewer. Alternatively, these options may be set via argument-value pairs in the setplotparams function call, as follows: setplotparams(...,'plot3d',1,'az',4,'el',4,...); - Fixed bug in iac 'Test all' - Fixed bug in pop-up menu rendering on OS/X that was producing several warning messages on MATLAB command line - Fixed bug in loading rbp pattern set when multiple hard clamp specification created empty arrays. - Fixed an issue with creating annotation objects in set display template module. - Fixed uicontrol display issues on mac - Set fontsizes internally to achieve consistent font size across platforms. Version 2.05: - Added a new network type 'tdbp' (Temporal-Difference Back Propagation). This program implements reinforcement learning via the temporal-difference method. It allows users to define BP networks and BP networks with recurrent connections which are trained to accomplish multistep prediction and control tasks. This module notably differs from the others in that it does not employ pattern files for training. Rather, the user must write a Matlab class which specifies the the dynamics of the environment in which the network learns. - Fixed a minor display issue with jets template file. Version 2.06: - Modified the property of iac network that created bi-directional projections automatically. The user now needs to explicitly create all connections at the time of network creation. To specify reverse projections , the read_connection command can now be used with a 't' (Transpose) parameter (syntax : read_connection('','t') ) to create a projection using the transpose of the array returned by loading the matrix in the specified file. The 'Create network' window now has a new option 'Transpose File' to implement this behavior under 'Projections'. This change will have an impact on the jets example network. - Fixed a requirement gap in cs program wherein 'test all' checkbox had been unavailable in the previous couple of versions. It is now visible in the test panel of the network viewer window and is in off state by default. - Fixed bug in cs program test process. The program now iterates through all the patterns only when 'Pat' checkbox and 'Test all' are both checked. - Fixed an issue in cs program with setting estr value of testoptions to 'scale' when using the Set test options window. The 'Set test options' gui window now applies the change correctly. - Fixed bug in cs and iac program that caused processing to run to 2 cycles when ncycles was set to 1. - Fixed bug in cs program with the 'stop' button in the test panel not interrupting the test process as required. - Fixed bug in cs program that was causing indexing errors in networks with multiple pools. - Replaced existing mailto address with pdplab-support alias in the 'about' window of 'Help' menu. Corresponding change for the function call 'pdptool_version' NOTE: In this release, hitting the 'stop' button in the rbp program during training or testing can couse errors and crashes. We are working on correcting this problem. Version 2.07: - Fixed a bug in rbp,bp and srn implementation logic that was causing weight error derivatives to be cleared during training in step mode. Weight error derivatives are now cleared only (a) after weights are changed or (b) after weights are reset - Fixed a bug in rbp to stop update of activation of bias unit. Prior to this fix, the activation of the bias unit in rbp reverted to 0.5 during settling. With this fix, it remains at 1.0 at all times. - Replaced application wide use of soon to be deprecated MATLAB functions RandStream.setDefaultStream and RandStream.getDefaultStream with RandStream.setGlobalStream and RandStream.getGlobalStream respectively. - Added Matlab-executable (MEX) files to support 'fast' rbp, srn and bp on 64-bit windows environment. On 64-bit Windows, the MEX files require Microsoft Visual Studio 2010 runtime libraries to be available. Microsoft Visual C++ 2010 SP1 Redistributable Package (x64) can be downloaded from here - http://www.microsoft.com/en-us/download/details.aspx?id=13523 NOTE: Hitting 'stop' in rbp can still cause errors.