This directory contains Jupyter notebooks for demonstrating both the API and the capabilities of EvoTorch.
These examples require either JupyterLab or Jupyter Notebook. See here for installation instructions.
The notebook which demonstrates gym experiments requires the gym library with its box2d
extensions enabled. The following pip
installation instruction ensures that gym is installed with the box2d
extensions:
pip install 'gym[box2d]'
The notebook examples are listed below:
- Gym Experiments with PGPE and CoSyNE: demonstrates how you can solve "LunarLanderContinuous-v2" using both
PGPE
andCoSyNE
following the configurations described in the paper proposing ClipUp and the JMLR paper on the CoSyNE algorithm. - Brax Experiments with PGPE: demonstrates how you can solve the brax task "humanoid" using PGPE, with GPU support, if available. See also Brax_Experiments_Visualization.ipynb for visualizing evolved brax policies.
- Minimizing Lennard-Jones Atom Cluster Potentials: recreates experiments from the paper introducing
SNES
, showing that the algorithm can effectively solve the challenging task of minimising Lennard-Jones atom cluster potentials. - Model Predictive Control with CEM: demonstrates the application of the Cross-Entropy Method
CEM
to Model Predictive Control (MPC) of the MuJoCo task named "Reacher-v4". - Training MNIST30K: recreates experiments from a recent paper which demonstrates that
SNES
can be used to solve supervised learning problems. The script in particular recreates the training of the 30K-parameter 'MNIST30K' model on the MNIST dataset, but can easily be reconfigured to recreate other experiments from that paper. - Variational Quantum Eigensolvers with SNES: re-implements (with some minor changes in experimental setup), experiments in a recent paper demonstrating that
SNES
is a scalable alternative to analytic gradients on a quantum computer, and can practically optimize Quantum Eigensolvers. - Genetic Programming: demonstrates genetic programming with GPU support.
- Feature Space Illumination with MAPElites: demonstrates how one can use the MAPElites algorithm to obtain a population organized according to the features of the solutions.
- Evolving_Objects: demonstrates how to declare and solve optimization problems with custom structured solutions (storing not-necessarily numeric data and/or having varying lengths). In more details, this example evolves simple gaits for the
Ant-v4
reinforcement learning environment using a custom solution encoding such that each solution contains multiple sublists of integers. - Functional API: As an alternative to its object-oriented stateful API, EvoTorch provides an API that conforms to the functional programming paradigm. This functional API has its own advantages like being able to work on not just a single population, but on a batch of populations. This sub-directory contains examples demonstrating the functional API of EvoTorch.