evox.algorithms.so.es_variants.nes¶
模块内容¶
类¶
xNES 算法的实现。 |
|
可分 NES 算法的实现。 |
API¶
- class evox.algorithms.so.es_variants.nes.XNES(init_mean: torch.Tensor, init_covar: torch.Tensor, pop_size: int | None = None, recombination_weights: torch.Tensor | None = None, learning_rate_mean: float | None = None, learning_rate_var: float | None = None, learning_rate_B: float | None = None, covar_as_cholesky: bool = False, device: torch.device | None = None)[源代码]¶
基础:
evox.core.AlgorithmxNES 算法的实现。
参考文献:Exponential Natural Evolution Strategies (https://dl.acm.org/doi/abs/10.1145/1830483.1830557)
初始化
使用给定的参数初始化 xNES 算法。
- 参数:
init_mean -- 种群的初始均值向量。必须是一个一维张量。
init_covar -- 种群的初始协方差矩阵。必须是一个二维张量。
pop_size -- 种群的大小。默认值为 None。
recombination_weights -- 种群的重组权重。默认为 None。
learning_rate_mean -- 均值向量的学习率。默认值为 None。
learning_rate_var -- 方差向量的学习率。默认为 None。
learning_rate_B -- B 矩阵的学习率。默认值为 None。
covar_as_cholesky -- 是否将协方差矩阵用作 Cholesky 分解的结果。默认为 False。
device -- 设备的使用者(设备用于存放张量的硬件)。默认为 None。
- class evox.algorithms.so.es_variants.nes.SeparableNES(init_mean: torch.Tensor, init_std: torch.Tensor, pop_size: int | None = None, recombination_weights: torch.Tensor | None = None, learning_rate_mean: float | None = None, learning_rate_var: float | None = None, device: torch.device | None = None)[源代码]¶
基础:
evox.core.Algorithm可分 NES 算法的实现。
参考文献:Natural Evolution Strategies (https://www.jmlr.org/papers/volume15/wierstra14a/wierstra14a.pdf)
初始化
使用给定参数初始化 Separable NES 算法。
- 参数:
init_mean -- 种群的初始均值向量。必须是一个一维张量。
init_std -- 每个维度的初始标准差。必须是一个 1D 张量。
pop_size -- 种群的大小。默认值为 None。
recombination_weights -- 种群的重组权重。默认为 None。
learning_rate_mean -- 均值向量的学习率。默认值为 None。
learning_rate_var -- 方差向量的学习率。默认为 None。
device -- 设备的使用者(设备用于存放张量的硬件)。默认为 None。