PDP++ 3.0 Released

Randall C. O'Reilly oreilly at grey.colorado.edu
Sat May 3 01:58:38 EDT 2003


Version 3.0 of the PDP++ neural network simulation software is now
available for downloading.  See either of the websites below for
details:

http://www.cnbc.cmu.edu/Resources/PDP++/PDP++.html
http://psych.colorado.edu/~oreilly/PDP++/PDP++.html

New features for this release are listed below.  

				- Randy

+----------------------------------------------------------------+
| Dr. Randall C. O'Reilly   |                                    |
| Associate Professor       | Phone: (303) 492-0054              |
| Department of Psychology  | Fax:   (303) 492-2967              |
| Univ. of Colorado Boulder |					 |
| 345 UCB                   | email: oreilly at psych.colorado.edu  |
| Boulder, CO 80309-0345    | www:   psych.colorado.edu/~oreilly |
+----------------------------------------------------------------+

This file contains a summary of important changes from the previous
release of PDP++.  See the ChangeLog file for a comprehensive, though
less comprehensible, list.

===========================================
		Release 3.0
===========================================

IMPORTANT NOTE FOR EXISTING PROJECTS:

- If you have a stopping criterion set on a MonitorStat (e.g.,
  stopping when MAX activation exceeds some threshold in the output
  layer), then this stopping criterion will be lost when you load the
  project.  If you look in the spew of messages generated during the
  load process, you'll see a message like this:

   *** Member: mon not found in type: MonitorStat (this is likely just
   harmless version skew)
   <<err_skp ->>{name="max_act_Output": disp_opts=" ": is_string=false:
   vec_n=0: val=0: str_val="": stopcrit={flag=true: rel=GREATERTHAN:
   val=.5: cnt=1: n_met=0: }: };<<- err_skp>>

  Just get the stopcrit value (val=.5 in this example) and
  relationship (GREATERTHAN) from this and enter it into the first
  element in the mon_vals list in the appropriate MonitorStat in the
  opened project to restore function (or replace this stat entirely
  with a new ActThreshRTStat).

- GraphLog FIXED ranges will be lost upon loading: there is now a
  fix_min and fix_max flag inline with the ranges that will need to be
  clicked as appropriate (the range values are preserved, just the
  flag to fix them is missing).  Look for FIXED messages in the spew
  as per above.

- SelectEdit (.edits) labels will be lost upon loading, and can be
  recovered in the same manner as above.

- NetView Layer fonts will be smaller than before -- use
  View:Actions/Set Layer Font to set a larger font.  The new default
  for new views is 18 point.

- For your additional C++ code: El() function on Lists/Groups/Arrays
  renamed to SafeEl() to better reflect its function (index range
  checking), and [] operator changed to FastEl() (no index range
  checking) instead of SafeEl(), to better reflect typical usage.

- Error functions in BP: if you've written your own, see comments in
  ChangeLog (search for date 2002-09-13).

NEW FEATURES:

- Wizard that automates the construction of simulation objects:
  creates commonly-used configurations of neworks, environments,
  processes, stats and logs.

- Distributed-memory parallel processing via MPI (instead of pthread):
  DMEM can be much more efficient than pthread, and is much more
  flexible in that it works in both shared and distributed memory
  architectures.  Support for distributing computation across both
  connections and across events is provided, by setting the number of
  processors in the Network and the EpochProcess.  In both cases, each
  processor runs everything redundantly except for a subset of events
  or connections -- this makes for relatively little extra code
  required to support dmem -- connections/events are divided across
  processes, and results are synchronized to keep everything consistent.

- Additional analysis functions: PCA (principal components analysis)
  and MDS (multidimensional scaling), and Cluster Plot efficiency
  vastly improved to handle large data sets.  Also added processes for
  automatically computing these functions over hidden layers, etc.
  Other new analysis routines include automatic generation of
  statistics on environment frequencies -- useful for validating
  environments.

- Much improved GraphLog, focusing on discriminating overlapping line
  traces (repeated passes through the same set of X axis values --
  eg. multiple settles of a network, multiple training runs, etc).
  Traces can be color-coded (line_type = TRACE_COLORS), incremented
  (producing a 3D-like effect) via trace_incr, and stacked (vertical =
  STACK_TRACES).  A spike-raster-like plot, or even a continuous
  color-coded version, can be achieved by not displaying any vertical
  axis values at all (vertical = NO_VERTICAL) and using either
  VALUE_COLORS (continuous color-coded) or THRESH_POINTS (thresholded
  spike raster).  Also, columns of data can be plotted row-wise
  instead (e.g., for monitored activations, or COPY aggregators), and
  the view_bufsz value is now actually respected, so you can scroll
  through large amounts of data instead of seeing it all.

- Log displays are now much more robust when you add or remove data to
  be logged -- you should now spend much less time reconfiguring the
  log views.

- Color-coded edit dialogs and view window backdrops based on an enhanced
  (and customizable) Project view color scheme.

- Ability to save view displays to a JPEG or TIFF file (in addition to
  existing Postscript), including automatic saving at each update for
  constructing animations.

- Incremental reading of events from a file during processing (FromFileEnv).

- Automatic SimLog creation whenever project is saved -- helps you
  keep track of what each project is.

- Added two new algorithms: Long Short Term Memory (Hochreiter,
  Schmidhuber et al) implemented as lstm++ (works really well on
  sequential learning problems in general), and RNS++, written by Josh
  Brown: http://iac.wustl.edu/~jwbrown/rns++/index.html

- Support for g++ 3.x compilers (default for CYGWIN, DARWIN, use
  config/Makefile.LINUX.3 for LINUX instead of LINUX.2 (see
  README.linux for important details on compiling under LINUX,
  including a sstream include file fix for gcc 2.9x (e.g., RedHat
  7.x)), and zlib now used instead of forking to call gzip for
  loading/saving compressed files: should be much faster and more
  reliable under CYGWIN (MS Windows).  Check your Makefile.in for
  $(X11_LIB) instead of -lX11 if you get link errors involving zlib or
  jpeg lib calls.  Also, the SIM_NONSHARED makefile variables have
  been eliminated -- these were included by default in mk_new_pdp
  Makefile.in files, and need to just be cut out of the makefile.

- Numerous small processes and statistics to facilitate auotomation of
  common tasks.  Also, a better interface for interactive environments
  where subsequent events depend on current network outputs (see
  demo/leabra/nav.proj.gz for an example).

- Mersenne Twister random number generator now used for all random
  number calls (by Makoto Matsumoto and Takuji Nishimura,
  http://www.math.keio.ac.jp/~matumoto/emt.html)

- Easier access to view configuration variables through view menu
  functions; support for window manager close button; SelectEdit can
  include Methods (Functions) in addition to member data; Net log view
  usability considerably improved; Added buttons for graphing
  activation functions, etc on relevant specs.




More information about the Connectionists mailing list