Skip to content

Release 0.3.0

Compare
Choose a tag to compare
@drasmuss drasmuss released this 25 Apr 19:49
· 780 commits to main since this release

Added

  • Use logger for debug/builder output
  • Implemented TensorFlow gradients for sparse Variable update Ops, to allow
    models with those elements to be trained
  • Added tutorial/examples on using Simulator.train
  • Added support for training models when unroll_simulation=False
  • Compatibility changes for Nengo 2.4.0
  • Added a new graph planner algorithm, which can improve simulation speed at
    the cost of build time

Changed

  • Significant improvements to simulation speed

    • Use sparse Variable updates for signals.scatter/gather
    • Improved graph optimizer memory organization
    • Implemented sparse matrix multiplication op, to allow more aggressive
      merging of DotInc operators
  • Significant improvements to build speed

    • Added early termination to graph optimization
    • Algorithmic improvements to graph optimization functions
  • Reorganized documentation to more clearly direct new users to relevant
    material

Fixed

  • Fix bug where passing a built model to the Simulator more than once would
    result in an error
  • Cache result of calls to tensor_graph.build_loss/build_optimizer, so that
    we don't unnecessarily create duplicate elements in the graph on repeated
    calls
  • Fix support for Variables on GPU when unroll_simulation=False
  • SimPyFunc operators will always be assigned to CPU, even when
    device="/gpu:0", since there is no GPU kernel
  • Fix bug where Simulator.loss was not being computed correctly for
    models with internal state
  • Data/targets passed to Simulator.train will be truncated if not evenly
    divisible by the specified minibatch size
  • Fixed bug where in some cases Nodes with side effects would not be run if
    their output was not used in the simulation
  • Fixed bug where strided reads that cover a full array would be interpreted as
    non-strided reads of the full array