# {py:mod}`evorl.algorithms.erl.cemrl_workflow` ```{py:module} evorl.algorithms.erl.cemrl_workflow ``` ```{autodoc2-docstring} evorl.algorithms.erl.cemrl_workflow :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`CEMRLTrainMetric ` - * - {py:obj}`CEMRLWorkflowBase ` - ```{autodoc2-docstring} evorl.algorithms.erl.cemrl_workflow.CEMRLWorkflowBase :parser: autodoc2_docstrings_parser :summary: ``` ```` ### API `````{py:class} CEMRLTrainMetric :canonical: evorl.algorithms.erl.cemrl_workflow.CEMRLTrainMetric Bases: {py:obj}`evorl.metrics.MetricBase` ````{py:attribute} ec_info :canonical: evorl.algorithms.erl.cemrl_workflow.CEMRLTrainMetric.ec_info :type: evorl.types.PyTreeDict :value: > 'metric_field(...)' ```{autodoc2-docstring} evorl.algorithms.erl.cemrl_workflow.CEMRLTrainMetric.ec_info :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_episode_lengths :canonical: evorl.algorithms.erl.cemrl_workflow.CEMRLTrainMetric.pop_episode_lengths :type: chex.Array :value: > None ```{autodoc2-docstring} evorl.algorithms.erl.cemrl_workflow.CEMRLTrainMetric.pop_episode_lengths :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_episode_returns :canonical: evorl.algorithms.erl.cemrl_workflow.CEMRLTrainMetric.pop_episode_returns :type: chex.Array :value: > None ```{autodoc2-docstring} evorl.algorithms.erl.cemrl_workflow.CEMRLTrainMetric.pop_episode_returns :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} rb_size :canonical: evorl.algorithms.erl.cemrl_workflow.CEMRLTrainMetric.rb_size :type: chex.Array :value: > None ```{autodoc2-docstring} evorl.algorithms.erl.cemrl_workflow.CEMRLTrainMetric.rb_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} rl_metrics :canonical: evorl.algorithms.erl.cemrl_workflow.CEMRLTrainMetric.rl_metrics :type: evorl.metrics.MetricBase | None :value: > None ```{autodoc2-docstring} evorl.algorithms.erl.cemrl_workflow.CEMRLTrainMetric.rl_metrics :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} CEMRLWorkflowBase(*, env: evorl.envs.Env, agent: evorl.agent.Agent, agent_state_vmap_axes: evorl.agent.AgentStateAxis, optimizer: optax.GradientTransformation, ec_optimizer: evorl.ec.optimizers.EvoOptimizer, collector: evorl.evaluators.EpisodeCollector, evaluator: evorl.evaluators.Evaluator, replay_buffer: evorl.replay_buffers.AbstractReplayBuffer, config: omegaconf.DictConfig) :canonical: evorl.algorithms.erl.cemrl_workflow.CEMRLWorkflowBase Bases: {py:obj}`evorl.workflows.Workflow` ```{autodoc2-docstring} evorl.algorithms.erl.cemrl_workflow.CEMRLWorkflowBase :parser: autodoc2_docstrings_parser ``` ````{py:method} build_from_config(config: omegaconf.DictConfig, enable_multi_devices: bool = False, enable_jit: bool = True) -> typing_extensions.Self :canonical: evorl.algorithms.erl.cemrl_workflow.CEMRLWorkflowBase.build_from_config :classmethod: ```` ````{py:method} enable_jit() -> None :canonical: evorl.algorithms.erl.cemrl_workflow.CEMRLWorkflowBase.enable_jit :classmethod: ```{autodoc2-docstring} evorl.algorithms.erl.cemrl_workflow.CEMRLWorkflowBase.enable_jit :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} evaluate(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.algorithms.erl.cemrl_workflow.CEMRLWorkflowBase.evaluate :abstractmethod: ```{autodoc2-docstring} evorl.algorithms.erl.cemrl_workflow.CEMRLWorkflowBase.evaluate :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} setup(key: chex.PRNGKey) -> evorl.types.State :canonical: evorl.algorithms.erl.cemrl_workflow.CEMRLWorkflowBase.setup ```{autodoc2-docstring} evorl.algorithms.erl.cemrl_workflow.CEMRLWorkflowBase.setup :parser: autodoc2_docstrings_parser ``` ```` `````