Skip to content

Release 3.2.0

Compare
Choose a tag to compare
@drasmuss drasmuss released this 02 Apr 15:40

Compatible with Nengo 3.0.0

Compatible with TensorFlow 2.0.0 - 2.2.0

Added

  • Added nengo_dl.LeakyReLU and nengo_dl.SpikingLeakyReLU neuron models. (#126)
  • Added support for leaky ReLU Keras layers to nengo_dl.Converter. (#126)
  • Added a new remove_reset_incs graph simplification step. (#129)
  • Added support for UpSampling layers to nengo_dl.Converter. (#130)
  • Added tolerance parameters to nengo_dl.Converter.verify. (#130)
  • Added scale_firing_rates option to nengo_dl.Converter. (#134)
  • Added Converter.layers attribute which will map Keras layers/tensors to the converted Nengo objects, to make it easier to access converted components. (#134)
  • Compatible with TensorFlow 2.2.0. (#140)
  • Added a new synapse argument to the Converter, which can be used to automatically add synaptic filters on the output of neural layers during the conversion process. (#141)
  • Added a new example demonstrating how to use the NengoDL Converter to convert a Keras model to a spiking Nengo network. (#141)

Changed

  • Re-enabled the remove_constant_copies graph simplification by default. (#129)
  • Reduced the amount of state that needs to be stored in the simulation. (#129)
  • Added more information to the error message when loading saved parameters that don't match the current model. (#129)
  • More efficient implementation of convolutional biases in the Converter. (#130)
  • Saved simulator state will no longer be included in Simulator.keras_model.weights. This means that Simulator.keras_model.save/load_weights will not include the saved simulator state, making it easier to reuse weights between models (as long as the models have the same weights, they do not need to have the same state variables). Simulator.save/load_params(..., include_state=True) can be used to explicitly save the simulator state, if desired. (#140)
  • Model parameters (e.g., connection weights) that are not trainable (because they've been marked non-trainable by user or targeted by an online learning rule) will now be treated separately from simulator state. For example, Simulator.save_params(..., include_state=False) will still include those parameters, and the results of any online learning will persist between calls even with stateful=False. (#140)
  • Added include_probes, include_trainable, and include_processes arguments to Simulator.reset to provide more fine-grained control over Simulator resetting. This replicates the previous functionality in Simulator.soft_reset. (#139)
  • More informative error messages when accessing invalid Simulator functionality after the Simulator has been closed. (#139)
  • A warning is now raised when the number of input data items passed to the simulator does not match the number of input nodes, to help avoid unintentionally passing data to the wrong input node. This warning can be avoided by passing data for all nodes, or using the dictionary input style if you want to only pass data for a specific node. (#139)
  • Dictionaries returned by sim.predict/evaluate will now be ordered. (#141)

Fixed

  • Fixed bug in error message when passing data with batch size less than Simulator minibatch size. (#139)
  • More informative error message when validation_split does not result in batch sizes evenly divisible by minibatch size. (#139)
  • Added tensorflow-cpu distributions to installation checks (so Nengo DL will not attempt to reinstall TensorFlow if tensorflow-cpu is already installed). (#142)
  • Fixed bug when applying the Converter to Keras models that re-use intermediate layers as output layers. (#137)
  • Fixed bug in conversion of Keras Dense layers with non-native activation functions. (#144)

Deprecated

  • Renamed Simulator.save/load_params include_non_trainable parameter to include_state. (#140)
  • Simulator.soft_reset has been deprecated. Use Simulator.reset(include_probes=False, include_trainable=False, include_processes=False) instead. (#139)