# {py:mod}`evorl.workflows` ```{py:module} evorl.workflows ``` ```{autodoc2-docstring} evorl.workflows :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Package Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {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: ``` * - {py:obj}`OffPolicyWorkflow ` - ```{autodoc2-docstring} evorl.workflows.rl_workflow.OffPolicyWorkflow :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`OnPolicyWorkflow ` - ```{autodoc2-docstring} evorl.workflows.rl_workflow.OnPolicyWorkflow :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`RLWorkflow ` - ```{autodoc2-docstring} evorl.workflows.rl_workflow.RLWorkflow :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`Workflow ` - ```{autodoc2-docstring} evorl.workflows.workflow.Workflow :parser: autodoc2_docstrings_parser :summary: ``` ```` ### API `````{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 ```` ````` `````{py:class} OffPolicyWorkflow(env: evorl.envs.Env, agent: evorl.agent.Agent, optimizer: optax.GradientTransformation, evaluator: evorl.evaluators.Evaluator, replay_buffer: evorl.replay_buffers.AbstractReplayBuffer, config: omegaconf.DictConfig) :canonical: evorl.workflows.rl_workflow.OffPolicyWorkflow Bases: {py:obj}`evorl.workflows.rl_workflow.RLWorkflow` ```{autodoc2-docstring} evorl.workflows.rl_workflow.OffPolicyWorkflow :parser: autodoc2_docstrings_parser ``` ````{py:method} evaluate(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.workflows.rl_workflow.OffPolicyWorkflow.evaluate ```` ````{py:method} setup(key: chex.PRNGKey) -> evorl.types.State :canonical: evorl.workflows.rl_workflow.OffPolicyWorkflow.setup ```{autodoc2-docstring} evorl.workflows.rl_workflow.OffPolicyWorkflow.setup :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} OnPolicyWorkflow(env: evorl.envs.Env, agent: evorl.agent.Agent, optimizer: optax.GradientTransformation, evaluator: evorl.evaluators.Evaluator, config: omegaconf.DictConfig) :canonical: evorl.workflows.rl_workflow.OnPolicyWorkflow Bases: {py:obj}`evorl.workflows.rl_workflow.RLWorkflow` ```{autodoc2-docstring} evorl.workflows.rl_workflow.OnPolicyWorkflow :parser: autodoc2_docstrings_parser ``` ````{py:method} evaluate(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.workflows.rl_workflow.OnPolicyWorkflow.evaluate ```` ````{py:method} setup(key: chex.PRNGKey) -> evorl.types.State :canonical: evorl.workflows.rl_workflow.OnPolicyWorkflow.setup ```{autodoc2-docstring} evorl.workflows.rl_workflow.OnPolicyWorkflow.setup :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} RLWorkflow(config: omegaconf.DictConfig) :canonical: evorl.workflows.rl_workflow.RLWorkflow Bases: {py:obj}`evorl.workflows.workflow.Workflow` ```{autodoc2-docstring} evorl.workflows.rl_workflow.RLWorkflow :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.workflows.rl_workflow.RLWorkflow.build_from_config :classmethod: ```{autodoc2-docstring} evorl.workflows.rl_workflow.RLWorkflow.build_from_config :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} enable_jit() -> None :canonical: evorl.workflows.rl_workflow.RLWorkflow.enable_jit :classmethod: ```{autodoc2-docstring} evorl.workflows.rl_workflow.RLWorkflow.enable_jit :parser: autodoc2_docstrings_parser ``` ```` ````{py:property} enable_multi_devices :canonical: evorl.workflows.rl_workflow.RLWorkflow.enable_multi_devices :type: bool ```{autodoc2-docstring} evorl.workflows.rl_workflow.RLWorkflow.enable_multi_devices :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} enable_shmap(axis_name: str) -> None :canonical: evorl.workflows.rl_workflow.RLWorkflow.enable_shmap :classmethod: ```{autodoc2-docstring} evorl.workflows.rl_workflow.RLWorkflow.enable_shmap :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} evaluate(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.workflows.rl_workflow.RLWorkflow.evaluate :abstractmethod: ```{autodoc2-docstring} evorl.workflows.rl_workflow.RLWorkflow.evaluate :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} step(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.workflows.rl_workflow.RLWorkflow.step :abstractmethod: ```{autodoc2-docstring} evorl.workflows.rl_workflow.RLWorkflow.step :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} Workflow(config: omegaconf.DictConfig) :canonical: evorl.workflows.workflow.Workflow Bases: {py:obj}`evorl.workflows.workflow.AbstractWorkflow` ```{autodoc2-docstring} evorl.workflows.workflow.Workflow :parser: autodoc2_docstrings_parser ``` ````{py:method} add_recorders(recorders: evorl.recorders.Recorder) -> None :canonical: evorl.workflows.workflow.Workflow.add_recorders ```{autodoc2-docstring} evorl.workflows.workflow.Workflow.add_recorders :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} build_from_config(config: omegaconf.DictConfig, *args, **kwargs) -> typing_extensions.Self :canonical: evorl.workflows.workflow.Workflow.build_from_config :abstractmethod: :classmethod: ```{autodoc2-docstring} evorl.workflows.workflow.Workflow.build_from_config :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} close() -> None :canonical: evorl.workflows.workflow.Workflow.close ```{autodoc2-docstring} evorl.workflows.workflow.Workflow.close :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(key: chex.PRNGKey) -> evorl.types.State :canonical: evorl.workflows.workflow.Workflow.init ```{autodoc2-docstring} evorl.workflows.workflow.Workflow.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} learn(state: evorl.types.State) -> evorl.types.State :canonical: evorl.workflows.workflow.Workflow.learn :abstractmethod: ```{autodoc2-docstring} evorl.workflows.workflow.Workflow.learn :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} setup(key: chex.PRNGKey) -> evorl.types.State :canonical: evorl.workflows.workflow.Workflow.setup :abstractmethod: ```{autodoc2-docstring} evorl.workflows.workflow.Workflow.setup :parser: autodoc2_docstrings_parser ``` ```` `````