summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-18 06:49:45 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-18 06:49:45 +0000
commit4e3536b0496674a5d0278de849366ef7820789ba (patch)
tree7829529ac8f77e77f9c2a34bfab8a8da40a54696
parentef25a996b0bb7c8de53a5e91b2f4f8170c9a6036 (diff)
automatic import of python-sorn
-rw-r--r--.gitignore1
-rw-r--r--python-sorn.spec489
-rw-r--r--sources1
3 files changed, 491 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..f508e97 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/sorn-0.7.4.tar.gz
diff --git a/python-sorn.spec b/python-sorn.spec
new file mode 100644
index 0000000..2e01a47
--- /dev/null
+++ b/python-sorn.spec
@@ -0,0 +1,489 @@
+%global _empty_manifest_terminate_build 0
+Name: python-sorn
+Version: 0.7.4
+Release: 1
+Summary: Self-Organizing Recurrent Neural Networks
+License: OSI Approved :: MIT License
+URL: https://github.com/Saran-nns/sorn
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/82/6f/9e91eac1ad0241f45023034aae79684b965de0e172fe2629a18be96f834c/sorn-0.7.4.tar.gz
+BuildArch: noarch
+
+Requires: python3-numpy
+Requires: python3-configparser
+Requires: python3-scipy
+Requires: python3-seaborn
+Requires: python3-pandas
+Requires: python3-networkx
+
+%description
+# Self-Organizing Recurrent Neural Networks
+
+SORN is a class of neuro-inspired artificial network build based on plasticity mechanisms in biological brain and mimic neocortical circuits ability of learning and adaptation. SORN consists of pool of excitatory neurons and small population of inhibitory neurons which are controlled by 5 plasticity mechanisms found in neocortex, namely Spike Timing Dependent Plasticity (STDP), Intrinsic Plasticity (IP), Synaptic Scaling (SS),Synaptic Normalization(SN) and inhibitory Spike Timing Dependent Plasticity (iSTDP). Using mathematical tools, SORN network simplifies the underlying structural and functional connectivity mechanisms responsible for learning and memory in the brain
+
+'sorn' is a Python package designed for Self Organizing Recurrent Neural Networks. It provides a research environment for computational neuroscientists to study the self-organization, adaption, learning,memory and behavior of brain circuits by reverse engineering neural plasticity mechanisms. Further to extend the potential applications of `sorn`, a demostrative example of a neuro-robotics experiment using OpenAI gym is also [documented](https://self-organizing-recurrent-neural-networks.readthedocs.io/en/latest/usage.html).
+
+
+[![Build Status](https://github.com/saran-nns/sorn/workflows/Build/badge.svg)](https://github.com/saran-nns/sorn/actions)
+[![codecov](https://codecov.io/gh/Saran-nns/sorn/branch/master/graph/badge.svg)](https://codecov.io/gh/Saran-nns/sorn)
+[![Documentation Status](https://readthedocs.org/projects/self-organizing-recurrent-neural-networks/badge/?version=latest)](https://self-organizing-recurrent-neural-networks.readthedocs.io/en/latest/?badge=latest)
+[![PyPI version](https://badge.fury.io/py/sorn.svg)](https://badge.fury.io/py/sorn)
+[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
+[![Downloads](https://pepy.tech/badge/sorn)](https://pepy.tech/project/sorn)
+[![DOI](https://zenodo.org/badge/174756058.svg)](https://zenodo.org/badge/latestdoi/174756058)
+[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
+[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/164AKTA-iCVLq-iR-treLA_Y9keRYrQkH#scrollTo=Rt2YZptMtC14)
+[![status](https://joss.theoj.org/papers/7dc447f7a0d17d774b59c8ee15c223c2/status.svg)](https://joss.theoj.org/papers/7dc447f7a0d17d774b59c8ee15c223c2)
+
+<h4 align="Left">SORN Reservoir</h4>
+<a href="url"><img src="https://raw.githubusercontent.com/Saran-nns/sorn/master/imgs/SORN1.png" height="320" width="430"></a>
+
+## Installation
+
+```python
+pip install sorn
+```
+
+or to install the latest version from the development branch
+
+```python
+pip install git+https://github.com/Saran-nns/sorn
+```
+
+## Dependencies
+SORN supports `Python 3.7+` ONLY. For older Python versions please use the official Python client.
+To install all optional dependencies,
+
+```python
+ pip install 'sorn[all]'
+```
+## Usage
+### Plasticity Phase
+
+```python
+import sorn
+from sorn import Simulator
+import numpy as np
+
+# Sample input
+num_features = 10
+time_steps = 200
+inputs = np.random.rand(num_features,time_steps)
+
+# Simulate the network with default hyperparameters under gaussian white noise
+state_dict, sim_dict = Simulator.run(inputs=inputs, phase='plasticity',
+ state=None, noise=True,
+ timesteps=time_steps,
+ callbacks=["ExcitatoryActivation",
+ "WEE",
+ "EEConnectionCounts"])
+
+```
+```
+Network Initialized
+Number of connections in Wee 3909 , Wei 1574, Wie 8000
+Shapes Wee (200, 200) Wei (40, 200) Wie (200, 40)
+```
+### Training Phase
+```python
+from sorn import Trainer
+# NOTE: During training phase, input to `sorn` should have second (time) dimension set to 1. ie., input shape should be (input_features,1).
+
+inputs = np.random.rand(num_features,1)
+
+# SORN network is frozen during training phase
+state_dict, sim_dict = Trainer.run(inputs= inputs, phase='training',
+ state=state_dict, noise=False,
+ timesteps=1,
+ ne=100, nu=num_features,
+ lambda_ee=10, eta_stdp=0.001,
+ callbacks=["InhibitoryActivation",
+ "WEI",
+ "EIConnectionCounts"] )
+```
+### Network Output Descriptions
+ `state_dict` - Dictionary of connection weights (`Wee`, `Wei`, `Wie`) , Excitatory network activity (`X`), Inhibitory network activities(`Y`), Threshold values (`Te`, `Ti`)
+
+ `sim_dict` - Dictionary of network states and parameters collected during the simulation/training: Provided, all available options of the argument `callbacks`, then the `sim_dict` should contain the following;
+
+ "ExcitatoryActivation" - Excitatory network activity of entire simulation period
+
+ "InhibitoryActivation" - Inhibitory network activity of entire simulation period
+
+ "RecurrentActivation" - Recurrent network activity of entire simulation period
+
+ "EEConnectionCounts" - Number of active connections in the Excitatory pool at each time step
+
+ "EIConnectionCounts" - Number of active connections from Inhibitory to Excitatory pool at each time step
+
+ "TE" - Threshold values of excitatory neurons at each time step
+
+ "TI" - Threshold values of inhibitory neurons at each time step
+
+ "WEE" - Synaptic efficacies between excitatory neurons
+
+ "WEI" - Connection weights from inhibitory to excitatory neurons
+
+ "WIE" - Connection weights from excitatory to inhibitory neurons
+
+
+### Documentation
+For detailed documentation about development, analysis, plotting methods and a sample experiment with OpenAI Gym, please visit [SORN Documentation](https://self-organizing-recurrent-neural-networks.readthedocs.io/en/latest/)
+
+### Citation
+
+```Python
+@article{Nambusubramaniyan2021,
+ doi = {10.21105/joss.03545},
+ url = {https://doi.org/10.21105/joss.03545},
+ year = {2021},
+ publisher = {The Open Journal},
+ volume = {6},
+ number = {65},
+ pages = {3545},
+ author = {Saranraj Nambusubramaniyan},
+ title = {`sorn`: A Python package for Self Organizing Recurrent Neural Network},
+ journal = {Journal of Open Source Software}
+}
+```
+
+### Contributions
+I am welcoming contributions. If you wish to contribute, please create a branch with a pull request and the changes can be discussed there.
+If you find a bug in the code or errors in the documentation, please open a new issue in the Github repository and report the bug or the error. Please provide sufficient information for the bug to be reproduced.
+
+
+
+
+
+
+%package -n python3-sorn
+Summary: Self-Organizing Recurrent Neural Networks
+Provides: python-sorn
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-sorn
+# Self-Organizing Recurrent Neural Networks
+
+SORN is a class of neuro-inspired artificial network build based on plasticity mechanisms in biological brain and mimic neocortical circuits ability of learning and adaptation. SORN consists of pool of excitatory neurons and small population of inhibitory neurons which are controlled by 5 plasticity mechanisms found in neocortex, namely Spike Timing Dependent Plasticity (STDP), Intrinsic Plasticity (IP), Synaptic Scaling (SS),Synaptic Normalization(SN) and inhibitory Spike Timing Dependent Plasticity (iSTDP). Using mathematical tools, SORN network simplifies the underlying structural and functional connectivity mechanisms responsible for learning and memory in the brain
+
+'sorn' is a Python package designed for Self Organizing Recurrent Neural Networks. It provides a research environment for computational neuroscientists to study the self-organization, adaption, learning,memory and behavior of brain circuits by reverse engineering neural plasticity mechanisms. Further to extend the potential applications of `sorn`, a demostrative example of a neuro-robotics experiment using OpenAI gym is also [documented](https://self-organizing-recurrent-neural-networks.readthedocs.io/en/latest/usage.html).
+
+
+[![Build Status](https://github.com/saran-nns/sorn/workflows/Build/badge.svg)](https://github.com/saran-nns/sorn/actions)
+[![codecov](https://codecov.io/gh/Saran-nns/sorn/branch/master/graph/badge.svg)](https://codecov.io/gh/Saran-nns/sorn)
+[![Documentation Status](https://readthedocs.org/projects/self-organizing-recurrent-neural-networks/badge/?version=latest)](https://self-organizing-recurrent-neural-networks.readthedocs.io/en/latest/?badge=latest)
+[![PyPI version](https://badge.fury.io/py/sorn.svg)](https://badge.fury.io/py/sorn)
+[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
+[![Downloads](https://pepy.tech/badge/sorn)](https://pepy.tech/project/sorn)
+[![DOI](https://zenodo.org/badge/174756058.svg)](https://zenodo.org/badge/latestdoi/174756058)
+[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
+[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/164AKTA-iCVLq-iR-treLA_Y9keRYrQkH#scrollTo=Rt2YZptMtC14)
+[![status](https://joss.theoj.org/papers/7dc447f7a0d17d774b59c8ee15c223c2/status.svg)](https://joss.theoj.org/papers/7dc447f7a0d17d774b59c8ee15c223c2)
+
+<h4 align="Left">SORN Reservoir</h4>
+<a href="url"><img src="https://raw.githubusercontent.com/Saran-nns/sorn/master/imgs/SORN1.png" height="320" width="430"></a>
+
+## Installation
+
+```python
+pip install sorn
+```
+
+or to install the latest version from the development branch
+
+```python
+pip install git+https://github.com/Saran-nns/sorn
+```
+
+## Dependencies
+SORN supports `Python 3.7+` ONLY. For older Python versions please use the official Python client.
+To install all optional dependencies,
+
+```python
+ pip install 'sorn[all]'
+```
+## Usage
+### Plasticity Phase
+
+```python
+import sorn
+from sorn import Simulator
+import numpy as np
+
+# Sample input
+num_features = 10
+time_steps = 200
+inputs = np.random.rand(num_features,time_steps)
+
+# Simulate the network with default hyperparameters under gaussian white noise
+state_dict, sim_dict = Simulator.run(inputs=inputs, phase='plasticity',
+ state=None, noise=True,
+ timesteps=time_steps,
+ callbacks=["ExcitatoryActivation",
+ "WEE",
+ "EEConnectionCounts"])
+
+```
+```
+Network Initialized
+Number of connections in Wee 3909 , Wei 1574, Wie 8000
+Shapes Wee (200, 200) Wei (40, 200) Wie (200, 40)
+```
+### Training Phase
+```python
+from sorn import Trainer
+# NOTE: During training phase, input to `sorn` should have second (time) dimension set to 1. ie., input shape should be (input_features,1).
+
+inputs = np.random.rand(num_features,1)
+
+# SORN network is frozen during training phase
+state_dict, sim_dict = Trainer.run(inputs= inputs, phase='training',
+ state=state_dict, noise=False,
+ timesteps=1,
+ ne=100, nu=num_features,
+ lambda_ee=10, eta_stdp=0.001,
+ callbacks=["InhibitoryActivation",
+ "WEI",
+ "EIConnectionCounts"] )
+```
+### Network Output Descriptions
+ `state_dict` - Dictionary of connection weights (`Wee`, `Wei`, `Wie`) , Excitatory network activity (`X`), Inhibitory network activities(`Y`), Threshold values (`Te`, `Ti`)
+
+ `sim_dict` - Dictionary of network states and parameters collected during the simulation/training: Provided, all available options of the argument `callbacks`, then the `sim_dict` should contain the following;
+
+ "ExcitatoryActivation" - Excitatory network activity of entire simulation period
+
+ "InhibitoryActivation" - Inhibitory network activity of entire simulation period
+
+ "RecurrentActivation" - Recurrent network activity of entire simulation period
+
+ "EEConnectionCounts" - Number of active connections in the Excitatory pool at each time step
+
+ "EIConnectionCounts" - Number of active connections from Inhibitory to Excitatory pool at each time step
+
+ "TE" - Threshold values of excitatory neurons at each time step
+
+ "TI" - Threshold values of inhibitory neurons at each time step
+
+ "WEE" - Synaptic efficacies between excitatory neurons
+
+ "WEI" - Connection weights from inhibitory to excitatory neurons
+
+ "WIE" - Connection weights from excitatory to inhibitory neurons
+
+
+### Documentation
+For detailed documentation about development, analysis, plotting methods and a sample experiment with OpenAI Gym, please visit [SORN Documentation](https://self-organizing-recurrent-neural-networks.readthedocs.io/en/latest/)
+
+### Citation
+
+```Python
+@article{Nambusubramaniyan2021,
+ doi = {10.21105/joss.03545},
+ url = {https://doi.org/10.21105/joss.03545},
+ year = {2021},
+ publisher = {The Open Journal},
+ volume = {6},
+ number = {65},
+ pages = {3545},
+ author = {Saranraj Nambusubramaniyan},
+ title = {`sorn`: A Python package for Self Organizing Recurrent Neural Network},
+ journal = {Journal of Open Source Software}
+}
+```
+
+### Contributions
+I am welcoming contributions. If you wish to contribute, please create a branch with a pull request and the changes can be discussed there.
+If you find a bug in the code or errors in the documentation, please open a new issue in the Github repository and report the bug or the error. Please provide sufficient information for the bug to be reproduced.
+
+
+
+
+
+
+%package help
+Summary: Development documents and examples for sorn
+Provides: python3-sorn-doc
+%description help
+# Self-Organizing Recurrent Neural Networks
+
+SORN is a class of neuro-inspired artificial network build based on plasticity mechanisms in biological brain and mimic neocortical circuits ability of learning and adaptation. SORN consists of pool of excitatory neurons and small population of inhibitory neurons which are controlled by 5 plasticity mechanisms found in neocortex, namely Spike Timing Dependent Plasticity (STDP), Intrinsic Plasticity (IP), Synaptic Scaling (SS),Synaptic Normalization(SN) and inhibitory Spike Timing Dependent Plasticity (iSTDP). Using mathematical tools, SORN network simplifies the underlying structural and functional connectivity mechanisms responsible for learning and memory in the brain
+
+'sorn' is a Python package designed for Self Organizing Recurrent Neural Networks. It provides a research environment for computational neuroscientists to study the self-organization, adaption, learning,memory and behavior of brain circuits by reverse engineering neural plasticity mechanisms. Further to extend the potential applications of `sorn`, a demostrative example of a neuro-robotics experiment using OpenAI gym is also [documented](https://self-organizing-recurrent-neural-networks.readthedocs.io/en/latest/usage.html).
+
+
+[![Build Status](https://github.com/saran-nns/sorn/workflows/Build/badge.svg)](https://github.com/saran-nns/sorn/actions)
+[![codecov](https://codecov.io/gh/Saran-nns/sorn/branch/master/graph/badge.svg)](https://codecov.io/gh/Saran-nns/sorn)
+[![Documentation Status](https://readthedocs.org/projects/self-organizing-recurrent-neural-networks/badge/?version=latest)](https://self-organizing-recurrent-neural-networks.readthedocs.io/en/latest/?badge=latest)
+[![PyPI version](https://badge.fury.io/py/sorn.svg)](https://badge.fury.io/py/sorn)
+[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
+[![Downloads](https://pepy.tech/badge/sorn)](https://pepy.tech/project/sorn)
+[![DOI](https://zenodo.org/badge/174756058.svg)](https://zenodo.org/badge/latestdoi/174756058)
+[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
+[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/164AKTA-iCVLq-iR-treLA_Y9keRYrQkH#scrollTo=Rt2YZptMtC14)
+[![status](https://joss.theoj.org/papers/7dc447f7a0d17d774b59c8ee15c223c2/status.svg)](https://joss.theoj.org/papers/7dc447f7a0d17d774b59c8ee15c223c2)
+
+<h4 align="Left">SORN Reservoir</h4>
+<a href="url"><img src="https://raw.githubusercontent.com/Saran-nns/sorn/master/imgs/SORN1.png" height="320" width="430"></a>
+
+## Installation
+
+```python
+pip install sorn
+```
+
+or to install the latest version from the development branch
+
+```python
+pip install git+https://github.com/Saran-nns/sorn
+```
+
+## Dependencies
+SORN supports `Python 3.7+` ONLY. For older Python versions please use the official Python client.
+To install all optional dependencies,
+
+```python
+ pip install 'sorn[all]'
+```
+## Usage
+### Plasticity Phase
+
+```python
+import sorn
+from sorn import Simulator
+import numpy as np
+
+# Sample input
+num_features = 10
+time_steps = 200
+inputs = np.random.rand(num_features,time_steps)
+
+# Simulate the network with default hyperparameters under gaussian white noise
+state_dict, sim_dict = Simulator.run(inputs=inputs, phase='plasticity',
+ state=None, noise=True,
+ timesteps=time_steps,
+ callbacks=["ExcitatoryActivation",
+ "WEE",
+ "EEConnectionCounts"])
+
+```
+```
+Network Initialized
+Number of connections in Wee 3909 , Wei 1574, Wie 8000
+Shapes Wee (200, 200) Wei (40, 200) Wie (200, 40)
+```
+### Training Phase
+```python
+from sorn import Trainer
+# NOTE: During training phase, input to `sorn` should have second (time) dimension set to 1. ie., input shape should be (input_features,1).
+
+inputs = np.random.rand(num_features,1)
+
+# SORN network is frozen during training phase
+state_dict, sim_dict = Trainer.run(inputs= inputs, phase='training',
+ state=state_dict, noise=False,
+ timesteps=1,
+ ne=100, nu=num_features,
+ lambda_ee=10, eta_stdp=0.001,
+ callbacks=["InhibitoryActivation",
+ "WEI",
+ "EIConnectionCounts"] )
+```
+### Network Output Descriptions
+ `state_dict` - Dictionary of connection weights (`Wee`, `Wei`, `Wie`) , Excitatory network activity (`X`), Inhibitory network activities(`Y`), Threshold values (`Te`, `Ti`)
+
+ `sim_dict` - Dictionary of network states and parameters collected during the simulation/training: Provided, all available options of the argument `callbacks`, then the `sim_dict` should contain the following;
+
+ "ExcitatoryActivation" - Excitatory network activity of entire simulation period
+
+ "InhibitoryActivation" - Inhibitory network activity of entire simulation period
+
+ "RecurrentActivation" - Recurrent network activity of entire simulation period
+
+ "EEConnectionCounts" - Number of active connections in the Excitatory pool at each time step
+
+ "EIConnectionCounts" - Number of active connections from Inhibitory to Excitatory pool at each time step
+
+ "TE" - Threshold values of excitatory neurons at each time step
+
+ "TI" - Threshold values of inhibitory neurons at each time step
+
+ "WEE" - Synaptic efficacies between excitatory neurons
+
+ "WEI" - Connection weights from inhibitory to excitatory neurons
+
+ "WIE" - Connection weights from excitatory to inhibitory neurons
+
+
+### Documentation
+For detailed documentation about development, analysis, plotting methods and a sample experiment with OpenAI Gym, please visit [SORN Documentation](https://self-organizing-recurrent-neural-networks.readthedocs.io/en/latest/)
+
+### Citation
+
+```Python
+@article{Nambusubramaniyan2021,
+ doi = {10.21105/joss.03545},
+ url = {https://doi.org/10.21105/joss.03545},
+ year = {2021},
+ publisher = {The Open Journal},
+ volume = {6},
+ number = {65},
+ pages = {3545},
+ author = {Saranraj Nambusubramaniyan},
+ title = {`sorn`: A Python package for Self Organizing Recurrent Neural Network},
+ journal = {Journal of Open Source Software}
+}
+```
+
+### Contributions
+I am welcoming contributions. If you wish to contribute, please create a branch with a pull request and the changes can be discussed there.
+If you find a bug in the code or errors in the documentation, please open a new issue in the Github repository and report the bug or the error. Please provide sufficient information for the bug to be reproduced.
+
+
+
+
+
+
+%prep
+%autosetup -n sorn-0.7.4
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-sorn -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 0.7.4-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..1e1422f
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+55d4359b4c1e2046453cd17663595f39 sorn-0.7.4.tar.gz