Skip to content

@tbekolay tbekolay released this Nov 19, 2019 · 9 commits to master since this release

Added

  • Added progress bar support for Jupyter Lab >=0.32. (#1428, #1087)
  • We now warn that the progress bar is not supported in Jupyter Notebook <5. (#1428, #1426)
  • Added support for convolutional connections. (#1481)
  • Added version tracking to documentation, so that documentation from old versions remains available. (#1488)
  • Added support for sparse connections. (#1532)
  • Added a fail_fast setting to test operators when they are first added to the model. See configuration options for details. (#1532)
  • Added a --memory option for pytest that prints the total memory consumed by the tests when they complete (Linux and Mac OS X only). (#640)
  • Added a bit precision setting to change the number of bits allocated to each value tracked by Nengo. (#640)
  • Added a Simulator.clear_probes method to clear probe data. This method can be used before pickling to reduce the pickle file size. (#1387)
  • Nengo tests now use the allclose fixture from pytest-allclose, which makes it possible for backends to change test tolerances. (#1563)
  • Nengo tests now use the rng and seed fixtures from pytest-rng. (#1566)
  • Nengo tests now use the plt fixture from pytest-plt. (#1566)
  • Added a nengo_simloader pytest option for specifying a callable that takes a pytest request and returns a callable to be used as Simulator in the Nengo test suite. (#1566)
  • Added more content to the API reference documentation. (#1578)

Changed

  • Python 2 is no longer supported. The oldest supported Python version is 3.5. (#1520, python3statement.org)
  • Nengo no longer supports Python 3.4. Official 3.4 support ended in March 2019. (PEP-429, #1514)
  • Replaced the dt argument to Simulator.trange with sample_every because dt would return values that the simulator had not simulated. dt is now an alias for sample_every and will be removed in the future. (#1368, #1384)
  • Dense connection transforms (this includes all previously supported values for Connection.transform) will now be represented internally as nengo.Dense objects. Arrays/scalars can still be passed as transform values, and they will be automatically converted to the equivalent nengo.Dense object. Retrieving the value of my_conn.transform will return that Dense object. The original input array can be retrieved through my_conn.transform.init. (#1481)
  • nengo.solvers.NoSolver(w, weights=True) now expects w to have shape (pre.n_neurons, function_d), rather than pre.n_neurons, post.n_neurons). That is, with NoSolver you are always specifying the values for the decoders, and encoders/transform will be applied automatically to those decoders (as occurs with all other solvers). Note that this does not affect NoSolver(..., weights=False) (the default). (#1481)
  • Increased minimum NumPy version to 1.11.0. See our instructions for installing NumPy if you need to upgrade. (#1481)
  • Solvers are now explicitly marked as compositional or non-compositional depending on whether they must act on full connection weight matrices when solving for weights. (#1507)
  • Solvers no longer take encoders as an argument. Instead, encoders will be applied to the targets before the solve function for non-compositional solvers and applied by the Transform builder for compositional solvers. (#1507)
  • Example Jupyter notebooks have been upgraded to notebook format 4. (#1440)
  • Switched documentation to new nengo-sphinx-theme. (#1489)
  • The settled_firingrate function has been moved from nengo.utils.neurons to nengo.neurons. (#1187)
  • Added new pytest config option, nengo_test_unsupported (replacing the previous Simulator.unsupported functionality). (#1521)
  • Switched to nengo-bones templating system for TravisCI config/scripts. (#1514)
  • The NeuronType.current and NeuronType.rates methods now document the supported shapes of parameters and return values. (#1437)
  • PES learning updates are now applied on the next timestep rather than the current one. (#1398)
  • The NdarrayParam now accepts a dtype argument to check that data assigned to that parameter matches the given Numpy dtype. DistOrArrayParam accepts an analogous sample_dtype argument. (#1532)
  • We no longer test operators when they are initially added to the model, which speed up build times slightly. To re-enable this testing, enable the fail_fast RC setting. (#1532)
  • LinearFilter now uses state space representations internally, which is faster and potentially more accurate. (#1535)
  • The default value of y0 in Synapse.filt is now 0 instead of the initial value of the input signal. This allows unstable filters (e.g., integrators) to be used with filt. (#1535)
  • LinearFilter now accepts the discretization method as an argument, rather than having it specified in make_step. (#1535)
  • The synapse_kwargs argument to FilteredNoise has been removed. (#1535)
  • Processes with internal state now declare that state by defining a make_state method and accepting a state parameter in make_step. (#1387)
  • Simulator is now pickleable, allowing its state to be saved and loaded. (#1387)
  • Renamed utils.testing.allclose to utils.testing.signals_allclose, to differentiate it from the allclose fixture. (#1563)
  • The default intercepts value has been changed to Uniform(-1, 0.9) to avoid high gains when intercepts are close to 1. (#1534, #1561)
  • The --simulator and --neurons pytest command line arguments are now specified by nengo_simulator and nengo_neurons entries in the pytest config file instead. (#1566)
  • The nengo_test_unsupported option now uses pytest nodeids for the test names (the main change is that this means a double :: between file and function names). (#1566)
  • Signals will now raise an error if their initial value contains NaNs. (#1571)
  • The builder will now raise an error if any encoders are NaN, which can occur if an encoder has length zero. (#1571)
  • Renamed simulator.ProbeDict to simulator.SimulationData. (#1574)
  • Increased minimum numpy version to 1.13. (#1577)
  • Documentation pages that had underscores in their filenames have been renamed to have hyphens instead. (#1585)

Deprecated

  • Deprecated the nengo.spa module. Use the Nengo SPA project instead. (#1465)
  • The A and B inputs to the Product and CircularConvolution networks are officially deprecated. Use input_a and input_b instead. (#887, #1179)
  • nengo.utils.compat will be removed in the next minor release. (#1520)
  • Deprecated utils.numpy.rmse. Call utils.numpy.rms on the difference between two arrays instead. (#1563)

Removed

  • Networks no longer accept the net argument. To set network arguments like label, pass them as keyword arguments instead. (#1179)
  • Removed generate_graphviz utility function. It can now be found in nengo_extras. (#1187)
  • Removed functions for estimating firing rates from spikes. They can now be found in nengo_extras. (#1187)
  • Removed the probe_all function. It can now be found in nengo_extras. (#1187)
  • PES.correction is no longer probeable. (#1398)
  • The internal rng and seed fixtures have been removed. Use the external pytest-rng package instead. (#1566)
  • The internal plt fixture has been removed. Use the external pytest-plt package instead. (#1566)
  • The internal logger fixture has been removed. Use pytest's log capturing instead. (#1566)
  • Removed nengo.log and nengo.utils.logging. Use the standard Python and pytest logging modules instead. (#1566)
  • The internal analytics and analytics_data fixtures have been removed. Use pytest's cache fixture instead. (#1566)
  • The RefSimulator fixture has been removed. Use the Simulator fixture and the nengo_test_unsupported configuration option instead. (#1566)
  • Removed find_modules and load_functions from nengo.utils.testing. Backends wanting to run Nengo test should use pytest --pyargs nengo instead. (#1566)
  • Removed nengo.tests.options. It is no longer necessary to use -p nengo.tests.options when running Nengo tests. (#1566)
  • Removed nengo.conftest. Use pytest configuration options instead. (#1566)
  • Removed support for legacy cache files. (#1577)
  • Removed the nengo ipynb progress bar extension. This is no longer needed in more recent ipynb versions. (#1577)
  • Removed the deprecated *_tau (e.g. pre_tau) parameters from learning rules. Use *_synapse instead. (#1577)
  • Removed the deprecated neuron_nodes argument from networks.EnsembleArray. Use EnsembleArray.add_neuron_input/add_neuron_output instead. (#1577)
  • Removed the deprecated progress.updater config option. Use progress.progress_bar instead. (#1577)
  • Removed the deprecated nengo.synapses.filt/filtfilt functions. Use the Synapse.filt/filtfilt methods instead. (#1577)
  • Removed the Python 2 compatibility code from utils.compat. (#1577)
  • Removed utils.connection.target_function. Target points can be passed directly to the Connection.function argument instead. (#1577)
  • Removed utils.functions.piecewise. Use nengo.processes.Piecewise instead. (#1577)
  • Removed utils.testing.Mock. (#1578)

Fixed

  • FrozenObjects can control parameter initialization order when copying, which fixed a bug encountered when copying convolutional connections. (#1493)
  • Fixed an issue in which reshaped signals were not having their offset values preserved, causing issues with some node functions. (#1474)
  • Better error message when Node output function does not match the given size_in/size_out. (#1452, #1434)
  • Several objects had elements missing from their string representations. These strings are now automatically generated and tested to be complete. (#1472)
  • Fixed the progress bar in recent Jupyter Lab versions. (#1499, #1500)
  • Some higher-order LinearFilter synapses had unnecessary delays that have now been removed. (#1535)
  • Models using the SpikingRectifiedLinear neuron type now have their decoders cached. (#1550)
  • Optional ShapeParam/TupleParam can now be set to None. (#1569)
  • Fixed error when using advanced indexing to connect to an Ensemble.neurons object. (#1582, #1583)
Assets 2
You can’t perform that action at this time.