evox.algorithms.so.es_variants.open_es

模块内容

OpenES

OpenES算法,如文章“Evolution Strategies as a Scalable Alternative to Reinforcement Learning”中所描述:https://arxiv.org/abs/1703.03864。

API

class evox.algorithms.so.es_variants.open_es.OpenES(pop_size: int, center_init: torch.Tensor, learning_rate: float, noise_stdev: float, optimizer: Literal[adam] | None = None, mirrored_sampling: bool = True, device: torch.device | None = None)[源代码]

基础: evox.core.Algorithm

OpenES算法,如文章“Evolution Strategies as a Scalable Alternative to Reinforcement Learning”中所描述:https://arxiv.org/abs/1703.03864。

初始化

用给定的参数初始化 OpenES 算法。

参数:
  • pop_size -- 种群大小。

  • center_init -- 种群的初始中心。必须是一个一维张量。

  • learning_rate -- 优化器的学习率。

  • noise_stdev -- 噪声的标准差。

  • optimizer -- 使用的优化器(optimizer)。 默认情况下为 None。 仅 support "adam" 或 None。

  • mirrored_sampling -- 是否使用镜像采样。默认值为 True。

  • device -- 设备的使用者(设备用于存放张量的硬件)。默认为 None。

step()[源代码]

通过评估当前种群的适应度并更新中心,执行 OpenES 算法的一步。

record_step()[源代码]