Skip to content

adipandas/pyneat

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

pyneat

This is an implementation of NEAT: NeuroEvolution of Augmenting Topologies in Python.

Environments Plot (reward vs. generations) Evolved Neural Network Architecture

Installation

pip install numpy scipy matplotlib
conda install pygraphviz
pip install networkx

Installation of OpenAI Gym: [link]

How to use?

This is a minimal implementation of NEAT. I haven't used any sort of parallel computing tricks like multiprocessing over here. The implementation should be fairly easy to understand.

python run_neat.py --help

python run_neat.py --task=lunar   # Run NEAT to learn lunar-lander policy

For any customization:

  • Different tasks: Edit run_neat.py
  • Hyperparameters: Edit pyneat/config.py

References:

  • Stanley, Kenneth O., and Risto Miikkulainen. "Efficient evolution of neural network topologies." Proceedings of the 2002 Congress on Evolutionary Computation. CEC'02 (Cat. No. 02TH8600). Vol. 2. IEEE, 2002.
  • neat-python: https://github.com/CodeReclaimers/neat-python

Refer the following implementation for additional (advanced) functionalities.

Please let me know if you come across any bugs in this implementation. Feel free to send any pull requests.