Skip to main content

No project description provided

Project description

n3ml

Neuromorphic Neural Network Machine Learning (N3ML) is designed to provide the following features.

  • Construct spiking neural networks
  • Simulate spiking neural networks
  • Transform spiking neural networks
  • Visualize spiking neural networks

N3ML is implemented by wrapping some features in PyTorch[7]. N3ML wraps torch.nn.Module class to track the structure of the built neural network easily and provide the compatiability with operators in PyTorch. We can construct a spiking neural network consisting of both the operators provided in N3ML and the ones in PyTorch. We can track the architecture of a spiking neural network using the methods provided by torch.nn.Module class. It is helpful to transform a spiking neura network to other simulators/frameworks or neuromorphic hardwares.

N3ML uses torch.autograd.Function to implemet surrogate derviative-based learning algorithms.

N3ML wraps torch.Tensor to get GPU accelerations.

Constructing spiking neural networks

Simulating spiking neural networks

Transforming spiking neural networks

Visualizing spiking neural networks

Supporting learning algorithms

n3ml provides some learning algorithms as examples that can be simulated. If you want to simulate them, you can go to test directory. Now, n3ml supports the following learning algorithms

  1. SpikeProp [1]
  2. STDP [2]
  3. Soft LIF [3]
  4. BP-STDP [4]
  5. STBP [5]

Installation

Now, n3ml is tested in Python 3.7.7.

Install dependencies

If you are installing from pip, some dependencies will be installed automatially that are registered in setup.py. Also, others can be found in requirements.txt.

python -r requirements.txt

You can install n3ml using pip.

pip install n3ml-python

GPU acceleration

We follows BindsNET[6] to supprot GPU acceleration in N3ML. Bascially, N3ML is implemented by wrapping torch.Tensor similar to BindsNET.

How to Contribute?

  • Feel free to create issues/pull-requests if you have any issues.
  • Please read CONTRIBUTING.md if you are interested in contributing the project.

Contributors

References

[1] Bohte, S. M., J. N. Kok, and H. L. Poutre, Error-backpropagation in temporally encoded networks of spiking neurons. Neurocomputing, 48(1-4), 17-37 (2002)

[2] Diehl, P. U. and M. Cook, Unsupervised learning of digit recognition using spike-timing-dependent plasticity, Frontiers in computational neuroscience, 9, 99 (2015)

[3] Hunsberger, E. and C. Eliasmith, Spiking Deep Networks with LIF Neurons, arXiv preprint arXiv:1510.08829 (2015)

[4] Tavanaei, A. and A. Maida, BP-STDP: Approximating backpropagation using spike timing dependent plasticity, Neurocomputing, 330, 39-47 (2019)

[5] Wu, Y., L. Deng, G. Li, J. Zhu, and L. Shi, Spatio-Temporal Backpropagation for Training High-Performance Spiking Neural Networks, Frontiers in neuroscience, 12, 331 (2018)

[6] Hazan, H., D. J. Saunders, H. Khan, D. Patel, D. T. Sanghavi, H. T. Siegelmann, and R. Kozma, BindsNET: A Machine Learning-Oriented Spiking Neural Networks Library in Python, Frontiers in neuroinformatics, 12, 89 (2018)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

n3ml_python-1.0.6-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

Details for the file n3ml_python-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: n3ml_python-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 21.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.7

File hashes

Hashes for n3ml_python-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 13e26744a75744fdaae4439241259da15a2ac5b085395fc073f2357d717f0b6b
MD5 5676c8a3f26d24b197f97cc0f62e34e7
BLAKE2b-256 7133f58e5c68a2686a2014dfe2f62a78818289541fdae7caceb254481c121688

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page