# {py:mod}`evorl.workflows.ec_workflow` ```{py:module} evorl.workflows.ec_workflow ``` ```{autodoc2-docstring} evorl.workflows.ec_workflow :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`DistributedInfo ` - ```{autodoc2-docstring} evorl.workflows.ec_workflow.DistributedInfo :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`ECWorkflow ` - ```{autodoc2-docstring} evorl.workflows.ec_workflow.ECWorkflow :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`ECWorkflowTemplate ` - ```{autodoc2-docstring} evorl.workflows.ec_workflow.ECWorkflowTemplate :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`MultiObjectiveECWorkflowTemplate ` - ```{autodoc2-docstring} evorl.workflows.ec_workflow.MultiObjectiveECWorkflowTemplate :parser: autodoc2_docstrings_parser :summary: ``` ```` ### API `````{py:class} DistributedInfo :canonical: evorl.workflows.ec_workflow.DistributedInfo Bases: {py:obj}`evorl.types.PyTreeData` ```{autodoc2-docstring} evorl.workflows.ec_workflow.DistributedInfo :parser: autodoc2_docstrings_parser ``` ````{py:attribute} rank :canonical: evorl.workflows.ec_workflow.DistributedInfo.rank :type: int :value: > 'zeros(...)' ```{autodoc2-docstring} evorl.workflows.ec_workflow.DistributedInfo.rank :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} world_size :canonical: evorl.workflows.ec_workflow.DistributedInfo.world_size :type: int :value: > 'pytree_field(...)' ```{autodoc2-docstring} evorl.workflows.ec_workflow.DistributedInfo.world_size :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} ECWorkflow(config: omegaconf.DictConfig) :canonical: evorl.workflows.ec_workflow.ECWorkflow Bases: {py:obj}`evorl.workflows.workflow.Workflow` ```{autodoc2-docstring} evorl.workflows.ec_workflow.ECWorkflow :parser: autodoc2_docstrings_parser ``` ````{py:method} build_from_config(config: omegaconf.DictConfig, enable_multi_devices: bool = False, enable_jit: bool = True) :canonical: evorl.workflows.ec_workflow.ECWorkflow.build_from_config :classmethod: ```{autodoc2-docstring} evorl.workflows.ec_workflow.ECWorkflow.build_from_config :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} enable_jit() -> None :canonical: evorl.workflows.ec_workflow.ECWorkflow.enable_jit :classmethod: ```{autodoc2-docstring} evorl.workflows.ec_workflow.ECWorkflow.enable_jit :parser: autodoc2_docstrings_parser ``` ```` ````{py:property} enable_multi_devices :canonical: evorl.workflows.ec_workflow.ECWorkflow.enable_multi_devices :type: bool ```{autodoc2-docstring} evorl.workflows.ec_workflow.ECWorkflow.enable_multi_devices :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} enable_shmap(axis_name) -> None :canonical: evorl.workflows.ec_workflow.ECWorkflow.enable_shmap :classmethod: ```{autodoc2-docstring} evorl.workflows.ec_workflow.ECWorkflow.enable_shmap :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} ECWorkflowTemplate(*, env: evorl.envs.Env, agent: evorl.agent.Agent, ec_optimizer: evorl.ec.optimizers.EvoOptimizer, ec_evaluator: evorl.evaluators.Evaluator | evorl.evaluators.EpisodeCollector, agent_state_vmap_axes: evorl.agent.AgentStateAxis = 0, config: omegaconf.DictConfig) :canonical: evorl.workflows.ec_workflow.ECWorkflowTemplate Bases: {py:obj}`evorl.workflows.ec_workflow.ECWorkflow` ```{autodoc2-docstring} evorl.workflows.ec_workflow.ECWorkflowTemplate :parser: autodoc2_docstrings_parser ``` ````{py:method} enable_jit() -> None :canonical: evorl.workflows.ec_workflow.ECWorkflowTemplate.enable_jit :classmethod: ```` ````{py:method} enable_shmap(axis_name) -> None :canonical: evorl.workflows.ec_workflow.ECWorkflowTemplate.enable_shmap :classmethod: ```` ````{py:method} setup(key: chex.PRNGKey) -> evorl.types.State :canonical: evorl.workflows.ec_workflow.ECWorkflowTemplate.setup ```{autodoc2-docstring} evorl.workflows.ec_workflow.ECWorkflowTemplate.setup :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} step(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.workflows.ec_workflow.ECWorkflowTemplate.step ```` ````` `````{py:class} MultiObjectiveECWorkflowTemplate(*, env: evorl.envs.Env, agent: evorl.agent.Agent, ec_optimizer: evorl.ec.optimizers.EvoOptimizer, ec_evaluator: evorl.evaluators.Evaluator | evorl.evaluators.EpisodeCollector, agent_state_vmap_axes: evorl.agent.AgentStateAxis = 0, config: omegaconf.DictConfig) :canonical: evorl.workflows.ec_workflow.MultiObjectiveECWorkflowTemplate Bases: {py:obj}`evorl.workflows.ec_workflow.ECWorkflowTemplate` ```{autodoc2-docstring} evorl.workflows.ec_workflow.MultiObjectiveECWorkflowTemplate :parser: autodoc2_docstrings_parser ``` ````{py:method} step(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.workflows.ec_workflow.MultiObjectiveECWorkflowTemplate.step ```` `````