Skip to content

0.3.0

Compare
Choose a tag to compare
@Higgcz Higgcz released this 24 Oct 20:03
· 53 commits to master since this release
a232d04

New

Vectorized gym support: Added a new problem class, evotorch.neuroevolution.VecGymNE, to solve vectorized gym environments. This new problem class can work with brax environments and can exploit GPU acceleration (#20).

PicklingLogger: Added a new logger, evotorch.logging.PicklingLogger, which periodically pickles and saves the current solution to the disk (#20).

Python 3.7 support: The Python dependency was lowered from 3.8 to 3.7. Therefore, EvoTorch can now be imported from within a Google Colab notebook (#16).

API Changes

@pass_info decorator: When working with GymNE (or with the newly introduced VecGymNE), if one uses a manual policy class and wishes to receive environment-related information via keyword arguments, that manual policy now needs to be decorated via @pass_info, as follows: (#27)

from torch import nn
from evotorch.decorators import pass_info

@pass_info
class CustomPolicy(nn.Module):
    def __init__(self, **kwargs):
        ...

Recurrent policies: When defining a manual recurrent policy (as a subclass of torch.nn.Module) for GymNE or for VecGymNE, the user is now required to define the forward method of the module according to the following signature:

def forward(self, x: torch.Tensor, h: Any = None) -> Tuple[torch.Tensor, Any]:
    ...

Note: The optional argument h is the current state of the network, and the second value of the output tuple is the updated state of the network. A reset() method is not required anymore, and it will be ignored (#20).

Fixes

Fixed a performance issue caused by the undesired cloning of the entire storages of tensor slices (#21).

Fixed the signature and the docstrings of the overridable method _do_cross_over(...) of the class evotorch.operators.CrossOver (#30).

Docs

Added more example scripts and updated the related README file (#19).

Updated the documentation related to GPU usage with ray (#28).