mode89 / esn

Echo State Network C/C++/Python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ESN library

ESN library implements simulation of Echo State Networks.

  • Echo State Network with non-spiking linear integrator neurons
  • Online training
  • Orthonormal weight matrix
  • Uniformly distributed leaking rate
  • Customizable connectivity between neurons
  • Input/output scaling
  • C/C++/Python
  • Linux/Windows
  • Using Eigen library for linear algebra computation

Dependencies

  • CMake 3.3. It's used for building the library.
  • Eigen. By default, the build script downloads Eigens library during configuration step. This behavior can be overriden by CMake options.
  • Google Test. It's used for testing ESN library. By default, the build script downloads Google Test during configuration step. This behavior can be overriden by CMake options.

Installation

Create and proceed to a building directory

mkdir build
cd build

Configure

cmake <options> <path-to-esn-folder>

Available CMake options:

  • ESN_USE_SYSTEM_EIGEN : Default is OFF. if ON, ESN library uses system installed version of Eigen library; if OFF, CMake downloads Eigen library during configuration step.
  • ESN_USE_SYSTEM_GTEST : Default is OFF. If ON, ESN library uses system installed version of Google Test library; If OFF, CMake downloads Google Test library during configuration step.

Build and install

cmake --build . --target install

TODO

  • More tests
  • More samples
  • Saving/loading network

License

BSD 2-clause license

About

Echo State Network C/C++/Python

License:BSD 2-Clause "Simplified" License


Languages

Language:C++ 69.3%Language:Python 13.4%Language:CMake 11.3%Language:C 6.0%