Changes 8.0.4

From emergent
Jump to: navigation, search

Back to ChangeLog -- Svn Checkin Log for 8.0.4

See Changes 8.0.0 for major changes since previous 7.0 version, and see emergent7 for ongoing LTS support of 7.0 -- these changes here are listed relative to the 8.0.0 release.

  • 8.0.3 was released Nov 9, 2016 as a beta release, overall compatible with 8.0.1
  • 8.0.4 was released Jan 12, 2017 as a full release containing one main important change to the Leabra Hebbian learning algorithm.

Major Changes

  • Important fix to Windows performance: threading was really slow due to a usleep call used in syncing -- removed this for all platforms -- could be small performance improvement on all platforms, and drastic improvement on windows.
  • Windows version of ODE physics simulation system was also not working properly, preventing the VEWorld virtual environment from working properly -- now fixed. Updated the EmerMiscLibs-msvs2015-64.zip package -- grab new one if you are building from source on windows: Build Windows
  • Windows was not able to record averages in NetMonitor -- due to an obscure function overloading problem -- now fixed.
  • New editing feature - inline code editing now drops a list of possible completions (variables, types, program elements, functions, etc) that match what you are typing.
  • Tab to extend to the first character that distinguishes the choices
  • If the list gets pared to a single item Tab will select it
  • Highlight any item in the list using the down/up arrow keys (also ctrl-N and ctrl-P for down/up) and press Tab to select it
  • To see an unfiltered list at line start type ctrl + space
  • Lookup showing you a list of completion choices in a modal dialog is still available - ctrl + 'L'
  • Leabra Hebbian learning algorithm was updated to use a simpler running average of gain-multiplied activation, instead of the thresholded activation that was used previously -- this works significantly better on a number of different projects. See the LeabraUnitSpec avg_l parameter for more information.

Minor Changes

  • set DataTable editor row height in terms of number of lines of text per row (or auto resize to contents), and all columns are now auto-sized to contents up to max_col_width (DataTable member, defaults to 50). To manually resize a column, first use the context menu Set Column Width action to "unlock" it from being auto-sized. Then usual gui sizing works. Except if you want to go larger than the current max_col_width, in which case you need to use the context menu (which will auto-increase the max to fit new col width).
  • added taDataGenSem for generating semantic patterns based on a target distance matrix (e.g., from LSA)
  • in taMath_float and taMath_double -- added lots of vec_* functions that perform basic math on each element of a vector / matrix (e.g., vec_cos, vec_exp, etc)
  • taDataAnal added ANOVA (one way and n-way) -- convenient for many types of data analysis, both on model results and also for nature of representations
  • fixed synaptic current integration over time window in Leabra for spiking nets -- key fix to allow spiking to actually work -- hadn't been updated since change to vectorized threaded memory layout -- requires a fixed max size for the window (currently 10).
  • also Leabra I_net is reset along with v_m during spiking -- no functional change but graphs look a lot better (esp when refractory period > 0)
  • fixed MAX_POOL function in Backpropagation -- activation function wasn't working. And SOFTMAX only works with err_tol = 0 -- now enforced in UAE code.
  • Network SaveWeights doesn't save weights for ConGroup's that have shared weights (convolutional networks) -- saves some space. Loading doesn't miss them..
  • In GraphTableView graphs:
  • can select a different data column for the labels to show for X, Z axes -- allows string labels to be applied to numeric axis values -- especially important for 3d graphs.
  • button to flip order of values displayed (high to low instead of low to high)
  • can rotate x-axis labels so long labels can be vertical or 45 degrees to be legible
  • can just enter a min / max value and if different from current, the corresponding "fix" flag will auto-check.
  • In GridTableView, new methods: AddVertLabels, AddHorizLabels to add labels around left vert or top horiz edge of grid view -- used in DistMatrixTable function, but now avail for anything..
  • Changing between if, else and else if when inline editing preserves sub-code of the conditional, ditto for changing loop type
  • Undo / Redo have menu items to choose actions -- still a few issues with this that need to be resolved.
  • New preferences options:
  • font_size.spacing -- determines spacing in edit dialogs
  • screen1-4 (in expert) -- screen-specific parameters (currently font_incr, line_width and window_scale) -- can be useful for calibrating for different monitors such as a large external monitor. do View / Screen Info to see info about the names and params of current screens.
  • Visualizer tabs now automatically update to the name of the first object viewed in them.