[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

pdp++ 3.0 beta



The beta version of pdp++ version 3.0 is now available for download
from the following ftp site:

ftp://grey.colorado.edu/pub/oreilly/pdp++

pdp++_3.0b_src.tar.gz and iv-15.tar.gz are the main source code files,
and there are binary executable tar files for LINUX (CYGWIN should be
forthcoming relatively soon).  If anyone has a chance to try it out
over the next couple of weeks or so, any bug reports would be
appreciated before the official 3.0 release.  We've done a fair amount
of testing in my lab here, so it should be pretty solid..  Attached
below is the NEWS file describing updates.  See the ChangeLog in the
src tar for all the gory details.

				- Randy

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.

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

- Support for g++ 3.x compilers (default for CYGWIN, DARWIN), 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.

- Added new algorithm: Long Short Term Memory (Hochreiter, Schmidhuber
  et al) implemented as lstm++.  This works really well on sequential
  learning problems in general.

- 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.