# {py:mod}`evorl.ec.optimizers.cem` ```{py:module} evorl.ec.optimizers.cem ``` ```{autodoc2-docstring} evorl.ec.optimizers.cem :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`SepCEM ` - ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`SepCEMState ` - ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEMState :parser: autodoc2_docstrings_parser :summary: ``` ```` ### API `````{py:class} SepCEM :canonical: evorl.ec.optimizers.cem.SepCEM Bases: {py:obj}`evorl.ec.optimizers.ec_optimizer.EvoOptimizer` ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM :parser: autodoc2_docstrings_parser ``` ````{py:method} ask(state: evorl.ec.optimizers.cem.SepCEMState) -> tuple[chex.ArrayTree, evorl.ec.optimizers.ec_optimizer.ECState] :canonical: evorl.ec.optimizers.cem.SepCEM.ask ```` ````{py:attribute} cov_eps_schedule :canonical: evorl.ec.optimizers.cem.SepCEM.cov_eps_schedule :type: evorl.ec.optimizers.utils.ExponentialScheduleSpec :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.cov_eps_schedule :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} elite_weights :canonical: evorl.ec.optimizers.cem.SepCEM.elite_weights :type: chex.Array :value: > 'pytree_field(...)' ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.elite_weights :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(mean: evorl.types.Params, key: chex.PRNGKey) -> evorl.ec.optimizers.cem.SepCEMState :canonical: evorl.ec.optimizers.cem.SepCEM.init ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} mirror_sampling :canonical: evorl.ec.optimizers.cem.SepCEM.mirror_sampling :type: bool :value: > False ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.mirror_sampling :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} num_elites :canonical: evorl.ec.optimizers.cem.SepCEM.num_elites :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.num_elites :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_size :canonical: evorl.ec.optimizers.cem.SepCEM.pop_size :type: int :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.pop_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} rank_weight_shift :canonical: evorl.ec.optimizers.cem.SepCEM.rank_weight_shift :type: float :value: > 1.0 ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.rank_weight_shift :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} tell(state: evorl.ec.optimizers.cem.SepCEMState, fitnesses: chex.Array) -> tuple[evorl.types.PyTreeDict, evorl.ec.optimizers.cem.SepCEMState] :canonical: evorl.ec.optimizers.cem.SepCEM.tell ```` ````{py:attribute} weighted_update :canonical: evorl.ec.optimizers.cem.SepCEM.weighted_update :type: bool :value: > True ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEM.weighted_update :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} SepCEMState :canonical: evorl.ec.optimizers.cem.SepCEMState Bases: {py:obj}`evorl.types.PyTreeData` ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEMState :parser: autodoc2_docstrings_parser ``` ````{py:attribute} cov_eps :canonical: evorl.ec.optimizers.cem.SepCEMState.cov_eps :type: chex.ArrayTree :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEMState.cov_eps :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} key :canonical: evorl.ec.optimizers.cem.SepCEMState.key :type: chex.PRNGKey :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEMState.key :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} mean :canonical: evorl.ec.optimizers.cem.SepCEMState.mean :type: chex.ArrayTree :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEMState.mean :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop :canonical: evorl.ec.optimizers.cem.SepCEMState.pop :type: None | chex.ArrayTree :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEMState.pop :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} variance :canonical: evorl.ec.optimizers.cem.SepCEMState.variance :type: chex.ArrayTree :value: > None ```{autodoc2-docstring} evorl.ec.optimizers.cem.SepCEMState.variance :parser: autodoc2_docstrings_parser ``` ```` `````