Nengo

Latest version: v4.0.0

Safety actively analyzes 706259 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 7

3.0.0

=========================

**Added**

- Added progress bar support for Jupyter Lab >=0.32.
(`1428 <https://github.com/nengo/nengo/pull/1428>`__,
`1087 <https://github.com/nengo/nengo/issues/1087>`__)
- We now warn that the progress bar is not supported in Jupyter Notebook <5.
(`1428 <https://github.com/nengo/nengo/pull/1428>`__,
`1426 <https://github.com/nengo/nengo/issues/1426>`__)
- Added support for convolutional connections.
(`1481 <https://github.com/nengo/nengo/pull/1481>`__)
- Added version tracking to documentation, so that documentation from old
versions remains available.
(`1488 <https://github.com/nengo/nengo/pull/1488>`__)
- Added support for sparse connections.
(`1532 <https://github.com/nengo/nengo/pull/1532>`__)
- Added a ``fail_fast`` setting to test operators when they are first
added to the model. See `configuration options
<https://www.nengo.ai/nengo/nengorc.html#configuration-options>`__
for details. (`1532 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/pull/640>`__)
- Added a bit precision setting to change the number of bits allocated
to each value tracked by Nengo.
(`640 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/pull/1387>`__)
- Nengo tests now use the ``allclose`` fixture from ``pytest-allclose``,
which makes it possible for backends to change test tolerances.
(`1563 <https://github.com/nengo/nengo/pull/1563>`__)
- Nengo tests now use the ``rng`` and ``seed`` fixtures from ``pytest-rng``.
(`1566 <https://github.com/nengo/nengo/pull/1566>`__)
- Nengo tests now use the ``plt`` fixture from ``pytest-plt``.
(`1566 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/pull/1566>`__)
- Added more content to the API reference documentation.
(`1578 <https://github.com/nengo/nengo/pull/1578>`__)

**Changed**

- Python 2 is no longer supported. The oldest supported Python version is 3.5.
(`1520 <https://github.com/nengo/nengo/pull/1520>`__,
`python3statement.org <https://python3statement.org/>`__)
- Nengo no longer supports Python 3.4.
Official 3.4 support ended in March 2019.
(`PEP-429 <https://www.python.org/dev/peps/pep-0429/>`__,
`1514 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/issues/1368>`_,
`1384 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/pull/1481>`__)
- Increased minimum NumPy version to 1.11.0. See our
`instructions for installing NumPy
<https://www.nengo.ai/nengo/getting-started.html#installing-numpy>`__
if you need to upgrade.
(`1481 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/pull/1507>`__)
- Example Jupyter notebooks have been upgraded to notebook format 4.
(`1440 <https://github.com/nengo/nengo/pull/1440>`_)
- Switched documentation to new
`nengo-sphinx-theme <https://github.com/nengo/nengo-sphinx-theme>`_.
(`1489 <https://github.com/nengo/nengo/pull/1489>`__)
- The ``settled_firingrate`` function has been moved from
``nengo.utils.neurons`` to ``nengo.neurons``.
(`1187 <https://github.com/nengo/nengo/pull/1187>`_)
- Added new pytest config option, ``nengo_test_unsupported`` (replacing the
previous ``Simulator.unsupported`` functionality).
(`1521 <https://github.com/nengo/nengo/pull/1521>`_)
- Switched to nengo-bones templating system for TravisCI config/scripts.
(`1514 <https://github.com/nengo/nengo/pull/1514>`_)
- The ``NeuronType.current`` and ``NeuronType.rates`` methods now document
the supported shapes of parameters and return values.
(`1437 <https://github.com/nengo/nengo/pull/1437>`__)
- PES learning updates are now applied on the next timestep rather than
the current one.
(`1398 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/pull/1532>`__)
- ``LinearFilter`` now uses state space representations internally,
which is faster and potentially more accurate.
(`1535 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/pull/1535>`__)
- ``LinearFilter`` now accepts the discretization method as an argument,
rather than having it specified in ``make_step``.
(`1535 <https://github.com/nengo/nengo/pull/1535>`__)
- The ``synapse_kwargs`` argument to ``FilteredNoise`` has been removed.
(`1535 <https://github.com/nengo/nengo/pull/1535>`__)
- Processes with internal state now declare that state by defining a
``make_state`` method and accepting a ``state`` parameter in ``make_step``.
(`1387 <https://github.com/nengo/nengo/pull/1387>`__)
- ``Simulator`` is now pickleable, allowing its state to be saved and loaded.
(`1387 <https://github.com/nengo/nengo/pull/1387>`__)
- Renamed ``utils.testing.allclose`` to ``utils.testing.signals_allclose``,
to differentiate it from the ``allclose`` fixture.
(`1563 <https://github.com/nengo/nengo/pull/1563>`__)
- The default ``intercepts`` value has been changed to ``Uniform(-1, 0.9)``
to avoid high gains when intercepts are close to 1.
(`1534 <https://github.com/nengo/nengo/issues/1534>`__,
`1561 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/pull/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 <https://github.com/nengo/nengo/pull/1566>`__)
- ``Signals`` will now raise an error if their initial value contains NaNs.
(`1571 <https://github.com/nengo/nengo/pull/1571>`__)
- The builder will now raise an error if any encoders are NaN,
which can occur if an encoder has length zero.
(`1571 <https://github.com/nengo/nengo/pull/1571>`__)
- Renamed ``simulator.ProbeDict`` to ``simulator.SimulationData``.
(`1574 <https://github.com/nengo/nengo/pull/1574>`__)
- Increased minimum numpy version to 1.13.
(`1577 <https://github.com/nengo/nengo/pull/1577>`__)
- Documentation pages that had underscores in their filenames have been
renamed to have hyphens instead.
(`1585 <https://github.com/nengo/nengo/pull/1585>`__)

**Deprecated**

- Deprecated the ``nengo.spa`` module. Use the
`Nengo SPA <https://www.nengo.ai/nengo-spa/index.html>`__
project instead.
(`1465 <https://github.com/nengo/nengo/pull/1465>`_)
- The ``A`` and ``B`` inputs to the ``Product`` and ``CircularConvolution``
networks are officially deprecated. Use ``input_a`` and ``input_b`` instead.
(`887 <https://github.com/nengo/nengo/issues/887>`__,
`1179 <https://github.com/nengo/nengo/pull/1179>`__)
- ``nengo.utils.compat`` will be removed in the next minor release.
(`1520 <https://github.com/nengo/nengo/pull/1520>`_)
- Deprecated ``utils.numpy.rmse``. Call ``utils.numpy.rms`` on
the difference between two arrays instead.
(`1563 <https://github.com/nengo/nengo/pull/1563>`__)

**Removed**

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

**Fixed**

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

2.8.0

====================

**Added**

- Added a warning when setting ``gain`` and ``bias`` along with either of
``max_rates`` or ``intercepts``, as the latter two parameters are ignored.
(`1431 <https://github.com/nengo/nengo/issues/1431>`_,
`1433 <https://github.com/nengo/nengo/pull/1433>`_)

**Changed**

- Learning rules can now be sliced when providing error input.
(`1365 <https://github.com/nengo/nengo/issues/1365>`_,
`1385 <https://github.com/nengo/nengo/pull/1385>`_)
- The order of parameters in learning rules has changed such that
``learning_rate`` always comes first.
(`1095 <https://github.com/nengo/nengo/pull/1095>`__)
- Learning rules take ``pre_synapse``, ``post_synapse``, and ``theta_synapse``
instead of ``pre_tau``, ``post_tau``, and ``theta_tau`` respectively.
This allows arbitrary ``Synapse`` objects to be used as filters on
learning signals.
(`1095 <https://github.com/nengo/nengo/pull/1095>`__)

**Deprecated**

- The ``nengo.ipynb`` IPython extension and the ``IPython2ProgressBar``
have been deprecated and replaced by the ``IPython5ProgressBar``.
This progress bar will be automatically activated in IPython and
Jupyter notebooks from IPython version 5.0 onwards.
(`1087 <https://github.com/nengo/nengo/issues/1087>`_,
`1375 <https://github.com/nengo/nengo/pull/1375>`_)
- The ``pre_tau``, ``post_tau``, and ``theta_tau`` parameters
for learning rules are deprecated. Instead, use ``pre_synapse``,
``post_synapse``, and ``theta_synapse`` respectively.
(`1095 <https://github.com/nengo/nengo/pull/1095>`__)

**Removed**

- Removed ``nengo.utils.docutils`` in favor of using
`nbsphinx <https://nbsphinx.readthedocs.io>`_.
(`1349 <https://github.com/nengo/nengo/pull/1349>`_)

2.7.0

=====================

**Added**

- Added ``amplitude`` parameter to ``LIF``, ``LIFRate``,
and ``RectifiedLinear`` which scale the output amplitude.
(`1325 <https://github.com/nengo/nengo/pull/1325>`_,
`1391 <https://github.com/nengo/nengo/pull/1391>`__)
- Added the ``SpikingRectifiedLinear`` neuron model.
(`1391 <https://github.com/nengo/nengo/pull/1391>`__)

**Changed**

- Default values can no longer be set for
``Ensemble.n_neurons`` or ``Ensemble.dimensions``.
(`1372 <https://github.com/nengo/nengo/pull/1372>`__)
- If the simulator seed is not specified, it will now be set
from the network seed if a network seed is specified.
(`980 <https://github.com/nengo/nengo/issues/980>`__,
`1386 <https://github.com/nengo/nengo/pull/1386>`__)

**Fixed**

- Fixed an issue in which signals could not be pickled,
making it impossible to pickle ``Model`` instances.
(`1135 <https://github.com/nengo/nengo/pull/1135>`_)
- Better error message for invalid return values in ``nengo.Node`` functions.
(`1317 <https://github.com/nengo/nengo/pull/1317>`_)
- Fixed an issue in which accepting and passing ``(*args, **kwargs)``
could not be used in custom solvers.
(`1358 <https://github.com/nengo/nengo/issues/1358>`_,
`1359 <https://github.com/nengo/nengo/pull/1359>`_)
- Fixed an issue in which the cache would not release its index lock
on abnormal termination of the Nengo process.
(`1364 <https://github.com/nengo/nengo/pull/1364>`_)
- Fixed validation checks that prevented the default
from being set on certain parameters.
(`1372 <https://github.com/nengo/nengo/pull/1372>`__)
- Fixed an issue with repeated elements in slices in which
a positive and negative index referred to the same dimension.
(`1395 <https://github.com/nengo/nengo/pull/1395>`_)
- The ``Simulator.n_steps`` and ``Simulator.time`` properties
now return scalars, as was stated in the documentation.
(`1406 <https://github.com/nengo/nengo/pull/1406>`_)
- Fixed the ``--seed-offset`` option of the test suite.
(`1409 <https://github.com/nengo/nengo/pull/1409>`_)

2.6.0

=======================

**Added**

- Added a ``NoSolver`` solver that can be used to manually pass in
a predefined set of decoders or weights to a connection.
(`1352 <https://github.com/nengo/nengo/pull/1352>`_)
- Added a ``Piecewise`` process, which replaces the now deprecated
``piecewise`` function.
(`1036 <https://github.com/nengo/nengo/issues/1036>`_,
`1100 <https://github.com/nengo/nengo/pull/1100>`_,
`1355 <https://github.com/nengo/nengo/pull/1355/>`_,
`1362 <https://github.com/nengo/nengo/pull/1362>`_)

**Changed**

- The minimum required version of NumPy has been raised to 1.8.
(`947 <https://github.com/nengo/nengo/issues/947>`_)
- Learning rules can now have a learning rate of 0.
(`1356 <https://github.com/nengo/nengo/pull/1356>`_)
- Running the simulator for zero timesteps will now issue a warning,
and running for negative time will error.
(`1354 <https://github.com/nengo/nengo/issues/1354>`_,
`1357 <https://github.com/nengo/nengo/pull/1357>`_)

**Fixed**

- Fixed an issue in which the PES learning rule could not be used
on connections to an ``ObjView`` when using a weight solver.
(`1317 <https://github.com/nengo/nengo/pull/1317>`_)
- The progress bar that can appear when building a large model
will now appear earlier in the build process.
(`1340 <https://github.com/nengo/nengo/pull/1340>`_)
- Fixed an issue in which ``ShapeParam`` would always store ``None``.
(`1342 <https://github.com/nengo/nengo/pull/1342>`_)
- Fixed an issue in which multiple identical indices in a slice were ignored.
(`947 <https://github.com/nengo/nengo/issues/947>`_,
`1361 <https://github.com/nengo/nengo/pull/1361>`_)

**Deprecated**

- The ``piecewise`` function in ``nengo.utils.functions`` has been deprecated.
Please use the ``Piecewise`` process instead.
(`1100 <https://github.com/nengo/nengo/pull/1100>`_)

2.5.0

=====================

**Added**

- Added a ``n_neurons`` property to ``Network``, which gives the
number of neurons in the network, including all subnetworks.
(`435 <https://github.com/nengo/nengo/issues/435>`_,
`1186 <https://github.com/nengo/nengo/pull/1186>`_)
- Added a new example showing how adjusting ensemble tuning curves can
improve function approximation.
(`1129 <https://github.com/nengo/nengo/pull/1129>`_)
- Added a minimum magnitude option to ``UniformHypersphere``.
(`799 <https://github.com/nengo/nengo/pull/799>`_)
- Added documentation on RC settings.
(`1130 <https://github.com/nengo/nengo/pull/1130>`_)
- Added documentation on improving performance.
(`1119 <https://github.com/nengo/nengo/issues/1119>`_,
`1130 <https://github.com/nengo/nengo/pull/1130>`_)
- Added ``LinearFilter.combine`` method to
combine two ``LinearFilter`` instances.
(`1312 <https://github.com/nengo/nengo/pull/1312>`_)
- Added a method to all neuron types to compute ensemble
``max_rates`` and ``intercepts`` given ``gain`` and ``bias``.
(`1334 <https://github.com/nengo/nengo/pull/1334>`_)

**Changed**

- Learning rules now have a ``size_in`` parameter and attribute,
allowing both integers and strings to define the dimensionality
of the learning rule. This replaces the ``error_type`` attribute.
(`1307 <https://github.com/nengo/nengo/pull/1307>`_,
`1310 <https://github.com/nengo/nengo/pull/1310>`_)
- ``EnsembleArray.n_neurons`` now gives the total number of neurons
in all ensembles, including those in subnetworks.
To get the number of neurons in each ensemble,
use ``EnsembleArray.n_neurons_per_ensemble``.
(`1186 <https://github.com/nengo/nengo/pull/1186>`_)
- The `Nengo modelling API document
<https://www.nengo.ai/nengo/frontend-api.html>`_
now has summaries to help navigate the page.
(`1304 <https://github.com/nengo/nengo/pull/1304>`_)
- The error raised when a ``Connection`` function returns ``None``
is now more clear.
(`1319 <https://github.com/nengo/nengo/pull/1319>`_)
- We now raise an error when a ``Connection`` transform is set to ``None``.
(`1326 <https://github.com/nengo/nengo/pull/1326>`_)

**Fixed**

- Probe cache is now cleared on simulator reset.
(`1324 <https://github.com/nengo/nengo/pull/1324>`_)
- Neural gains are now always applied after the synapse model.
Previously, this was the case for decoded connections
but not neuron-to-neuron connections.
(`1330 <https://github.com/nengo/nengo/pull/1330>`_)
- Fixed a crash when a lock cannot be acquired while shrinking the cache.
(`1335 <https://github.com/nengo/nengo/issues/1335>`_,
`1336 <https://github.com/nengo/nengo/pull/1336>`_)

2.4.0

======================

**Added**

- Added an optimizer that reduces simulation time for common types of models.
The optimizer can be turned off by passing ``optimize=False`` to ``Simulator``.
(`1035 <https://github.com/nengo/nengo/pull/1035>`_)
- Added the option to not normalize encoders by setting
``Ensemble.normalize_encoders`` to ``False``.
(`1191 <https://github.com/nengo/nengo/issues/1191>`_,
`1267 <https://github.com/nengo/nengo/pull/1267>`_)
- Added the ``Samples`` distribution to allow raw NumPy arrays
to be passed in situations where a distribution is required.
(`1233 <https://github.com/nengo/nengo/pull/1233>`_)

**Changed**

- We now raise an error when an ensemble is assigned a negative gain.
This can occur when solving for gains with intercepts greater than 1.
(`1212 <https://github.com/nengo/nengo/issues/1212>`_,
`1231 <https://github.com/nengo/nengo/issues/1231>`_,
`1248 <https://github.com/nengo/nengo/pull/1248>`_)
- We now raise an error when a ``Node`` or ``Direct`` ensemble
produces a non-finite value.
(`1178 <https://github.com/nengo/nengo/issues/1178>`_,
`1280 <https://github.com/nengo/nengo/issues/1280>`_,
`1286 <https://github.com/nengo/nengo/pull/1286>`_)
- We now enforce that the ``label`` of a network must be a string or ``None``,
and that the ``seed`` of a network must be an int or ``None``.
This helps avoid situations where the seed would mistakenly
be passed as the label.
(`1277 <https://github.com/nengo/nengo/pull/1277>`_,
`1275 <https://github.com/nengo/nengo/issues/1275>`_)
- It is now possible to pass NumPy arrays in the ``ens_kwargs`` argument of
``EnsembleArray``. Arrays are wrapped in a ``Samples`` distribution internally.
(`691 <https://github.com/nengo/nengo/issues/691>`_,
`766 <https://github.com/nengo/nengo/issues/766>`_,
`1233 <https://github.com/nengo/nengo/pull/1233>`_)
- The default refractory period (``tau_ref``) for the ``Sigmoid`` neuron type
has changed to 2.5 ms (from 2 ms) for better compatibility with the
default maximum firing rates of 200-400 Hz.
(`1248 <https://github.com/nengo/nengo/pull/1248>`_)
- Inputs to the ``Product`` and ``CircularConvolution`` networks have been
renamed from ``A`` and ``B`` to ``input_a`` and ``input_b`` for consistency.
The old names are still available, but should be considered deprecated.
(`887 <https://github.com/nengo/nengo/issues/887>`_,
`1296 <https://github.com/nengo/nengo/pull/1296>`_)

**Fixed**

- Properly handle non C-contiguous node outputs.
(`1184 <https://github.com/nengo/nengo/issues/1184>`_,
`1185 <https://github.com/nengo/nengo/pull/1185>`_)

**Deprecated**

- The ``net`` argument to networks has been deprecated. This argument existed
so that network components could be added to an existing network instead of
constructing a new network. However, this feature is rarely used,
and makes the code more complicated for complex networks.
(`1296 <https://github.com/nengo/nengo/pull/1296>`_)

Page 2 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.