Skip to content

Releases: pyrates-neuroscience/RectiPy

v0.12.1: New cutoff argument

17 Feb 19:46
Compare
Choose a tag to compare
  • added a cutoff keyword argument to the Network.run function that allows to define the number of initial steps that should be disregarded in the simulation results
  • updated PyPI config for uploading new versions

v0.12.0: New spike reset method

14 Nov 18:04
Compare
Choose a tag to compare
  • 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 method Network.add_diffeq_node to reset_var
  • added a keyword argument reset to the Network.add_diffeq_node that controls whether the spike reset mechanism of RectiPy 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

27 Oct 17:50
Compare
Choose a tag to compare
  • updated readthedocs configuration file
  • added new node classes MemoryNode and MemoryNet that allow to implement delay coupling in networks
  • renamed the FunctionNode class into InstantNode 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 of Network.add_edge

v0.11.0: Improved support for recurrent and spiking neural networks

16 Oct 14:33
Compare
Choose a tag to compare
  • 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 argument feedback=True of the FeedbackNetwork.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

28 Jun 20:44
Compare
Choose a tag to compare
  • 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 vector y was not moved to the correct device after state resets

v0.10.2: Improved network state reset

06 May 23:02
Compare
Choose a tag to compare
  • 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

24 Apr 18:32
Compare
Choose a tag to compare
  • added a new method Network.clear() that removes all nodes and edges from a rectipy.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

20 Apr 21:20
Compare
Choose a tag to compare
  • 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 and rectipy.edges provide different classes for nodes and edges that can be added to rectipy.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, and Network.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 of torch.Tensor objects, as numpy arrays, or as pandas.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

11 Feb 23:01
Compare
Choose a tag to compare
  • added a new IK neuron template with biexponential synaptic dynamics
  • improved layout of the readthedocs documentation website
  • changed the readout function to use the SGDClassifier instead of Ridge from sklearn

v0.9.2: Clean ups and bug removals

14 Jan 22:52
Compare
Choose a tag to compare
  • cleaned some code after model deployment changes made in 0.9.1
  • debugged the from_template initialization methods