Releases: pyrates-neuroscience/RectiPy
Releases · pyrates-neuroscience/RectiPy
v0.12.1: New cutoff argument
v0.12.0: New spike reset method
- added option to define spiking networks which contain the spike reset mechanism in their governing differential equations
- changed the name of the keyword argument
spike_def
of the methodNetwork.add_diffeq_node
toreset_var
- added a keyword argument
reset
to theNetwork.add_diffeq_node
that controls whether the spike reset mechanism ofRectiPy
should be used for a given node or whether it has an intrinsic spike reset mechanism - added a QIF neuron template that uses an intrinsic spike reset mechanism
- updated the pytest library to account for the changes
v0.11.1: Edge masking introduced
- updated readthedocs configuration file
- added new node classes
MemoryNode
andMemoryNet
that allow to implement delay coupling in networks - renamed the
FunctionNode
class intoInstantNode
to better set it apart from other node types that have some type of intrinsic memory - improved method for detaching tensors via
Network.detach()
- provides more control over which tensors to detach now. - debugged
FeedbackNetwork.compile()
method to work with multiple calls of the method - introduced edge masking as a new feature. Can be used by passing a mask array to the keyword argument
mask
ofNetwork.add_edge
v0.11.0: Improved support for recurrent and spiking neural networks
- added a class
FeedbackNetwork
that allows to add feedback connections between nodes in a network. Intended use: First, build the feedforward network structure that maps from input to output. Then add feedback edges, marking them via the keyword argumentfeedback=True
of theFeedbackNetwork.add_edge
method. - both feedforward and feedback edges can be trained
- Re-worked the backpropagation through time and recursive least squares training methods to work with feedback weights
- updated the readthedocs documentation and its configuration file
- added new pytests for the different optimization methods: Ridge regression, backpropagation, and recursive least squares
- added a class
MultiSpikeNode
that allows to define multiple spiking variables within a single differential equation-based node.
v0.10.3: Bugfixes and documentation improvements
- updated documentation of user interfaces
- updated use examples for user interfaces
- removed a minor bug in
nodes.py
that led to issues with retrieving variable indices from single-neuron nodes - removed a bug in
nodes.py
where, in some cases, the state vectory
was not moved to the correct device after state resets
v0.10.2: Improved network state reset
- debugged the
Network.reset()
method. Properly resets the network to the passed state dictionary now, if provided. - improved the
RateNet.reset()
method. The method can now handle both numpy arrays as well as tensors as input.
v0.10.1: New methods for altering Network parameters
- added a new method
Network.clear()
that removes all nodes and edges from arectipy.Network
instance - added new keyword arguments to
Network.detach()
that allow to customize the behavior of the method with respect to which tensors are going to be detached and whether they should require a gradient after detachment or not - added a new method
Network.set_var()
that allows to change the values of variables in the network instance - added a new method
Node.set_param()
that allows to change the values of parameters of the node - improved documentation of the methods of
rectipy.Network
v0.10.0: New graph-based user interface
- Changed user interface:
rectipy.Network
is now initialized as an empty graph. Nodes and edges can be added to it afternwards. - Added new modules:
rectipy.nodes
andrectipy.edges
provide different classes for nodes and edges that can be added torectipy.Network
instances - Altered training functionalities:
rectipy.Network
now features two methods for parameter optimization:Network.fit_ridge
for Ridge regression-based training of a set of readout weights, andNetwork.fit_bptt
for gradient descent based on backpropagation through time. - Implemented truncated backpropagation through time
- Implemented gradient surrogates for spiking neural networks
- New functionalities of the
rectipy.Observer
module: All recorded outputs can now be returned either as a list oftorch.Tensor
objects, as numpy arrays, or aspandas.DataFrame
objects. - Added convenience functions on
rectipy.Network
for adding and getting nodes, edges and network variables. - Improved integration of
rectipy.Network
with pytorch parameter optimization methods by adding high-level methods for (i) detaching all state-variables from the current graph for gradient computation, and (ii) resetting the state of the entire network. - Updated unit tests and documentation to work with the above described changes
- Updated PyRates interface to work with recent changes to the
pyrates.CircuitTemplate.add_edges_from_matrix
method
v0.9.3: New classifier for readout function
- added a new IK neuron template with biexponential synaptic dynamics
- improved layout of the readthedocs documentation website
- changed the
readout
function to use theSGDClassifier
instead ofRidge
from sklearn
v0.9.2: Clean ups and bug removals
- cleaned some code after model deployment changes made in 0.9.1
- debugged the
from_template
initialization methods