EANT2 made in Rust.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Correct documentation on eant_loop's behavior Aug 21, 2016
tests Comment out lines in test file Aug 20, 2016
.gitignore Remove vim files Aug 20, 2016
.travis.yml Add Travis Feb 16, 2016
Cargo.toml Fix Travis again Feb 16, 2016
LICENSE Fix link in README Aug 20, 2016
README.md Add quotes to installation instructions Aug 20, 2016



Build Status

This library is currently broken. I am looking into the problem, which seems to be caused by the CMA-ES crate. Once it is functional it will be released.

An implementation of the EANT2 algorithm in Rust. EANT2 is an evolutionary neural network training algorithm. It solves many of the problems associated with evolving topology of neural networks, as well as introducing new concepts. There are already libraries for neural network training, but require a lot of setup to make use of. This library aims to change that. A small number of (completely optional) parameters makes EANT2 easy to use. The goal of this library is to make it easy to include neural networks in any project.

This library has two other parts: CMA-ES and CGE.


Add this to your Cargo.toml:


eant2 = { git = "https://github.com/pengowen123/eant2" }

And this to your crate root:

extern crate eant2;

TODO: Add an example here as well as links to more complex examples

After training a neural network, save it to a file:


To use it elsewhere, use the CGE library. With it, you can load the network, and evaluate and reset it as many times as you wish. For a freestanding version (for embedded systems), use cge-core.

See the documentation for complete instructions as well as tips for improving performance of the algorithm. For docmentation on the usage of the neural networks, see the documentation for the CGE library here.


If you encounter a bug, please open an issue and I will try to get it fixed. If you have a suggestion, feel free to open an issue or implement it yourself and open a pull request.