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