--------------------
**Added**
- Added ability to manually specify which parts of a model are trainable
(see the `sim.train documentation
<https://www.nengo.ai/nengo-dl/v0.4.0/training.html>`_)
- Added some code examples (see the ``docs/examples`` directory, or the
`pre-built examples in the documentation
<https://www.nengo.ai/nengo-dl/examples.html>`_)
- Added the SoftLIFRate neuron type for training LIF networks (based on
`this paper <https://arxiv.org/abs/1510.08829>`_)
**Changed**
- Updated TensorFuncParam to new Nengo Param syntax
- The interface for Simulator ``step_blocks``/``unroll_simulation`` has been
changed. Now ``unroll_simulation`` takes an integer as argument which is
equivalent to the old ``step_blocks`` value, and ``unroll_simulation=1`` is
equivalent to the old ``unroll_simulation=False``. For example,
``Simulator(..., unroll_simulation=True, step_blocks=10)`` is now equivalent
to ``Simulator(..., unroll_simulation=10)``.
- Simulator.train/Simulator.loss no longer require ``step_blocks`` (or the new
``unroll_simulation``) to be specified; the number of steps to train across
will now be inferred from the input data.