# {py:mod}`evorl.algorithms.meta.pbt_workflow` ```{py:module} evorl.algorithms.meta.pbt_workflow ``` ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`PBTEvalMetric ` - * - {py:obj}`PBTOffpolicyTrainMetric ` - * - {py:obj}`PBTOffpolicyWorkflowTemplate ` - ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTOffpolicyWorkflowTemplate :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`PBTOptState ` - * - {py:obj}`PBTTrainMetric ` - * - {py:obj}`PBTWorkflowBase ` - * - {py:obj}`PBTWorkflowMetric ` - * - {py:obj}`PBTWorkflowTemplate ` - ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTWorkflowTemplate :parser: autodoc2_docstrings_parser :summary: ``` ```` ### API `````{py:class} PBTEvalMetric :canonical: evorl.algorithms.meta.pbt_workflow.PBTEvalMetric Bases: {py:obj}`evorl.metrics.MetricBase` ````{py:attribute} pop_episode_lengths :canonical: evorl.algorithms.meta.pbt_workflow.PBTEvalMetric.pop_episode_lengths :type: chex.Array :value: > None ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTEvalMetric.pop_episode_lengths :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_episode_returns :canonical: evorl.algorithms.meta.pbt_workflow.PBTEvalMetric.pop_episode_returns :type: chex.Array :value: > None ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTEvalMetric.pop_episode_returns :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} PBTOffpolicyTrainMetric :canonical: evorl.algorithms.meta.pbt_workflow.PBTOffpolicyTrainMetric Bases: {py:obj}`evorl.algorithms.meta.pbt_workflow.PBTTrainMetric` ````{py:attribute} rb_size :canonical: evorl.algorithms.meta.pbt_workflow.PBTOffpolicyTrainMetric.rb_size :type: chex.Array :value: > None ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTOffpolicyTrainMetric.rb_size :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} PBTOffpolicyWorkflowTemplate(workflow: evorl.workflows.OffPolicyWorkflow, evaluator: evorl.evaluators.Evaluator, config: omegaconf.DictConfig) :canonical: evorl.algorithms.meta.pbt_workflow.PBTOffpolicyWorkflowTemplate Bases: {py:obj}`evorl.algorithms.meta.pbt_workflow.PBTWorkflowTemplate` ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTOffpolicyWorkflowTemplate :parser: autodoc2_docstrings_parser ``` ````{py:method} enable_jit() -> None :canonical: evorl.algorithms.meta.pbt_workflow.PBTOffpolicyWorkflowTemplate.enable_jit :classmethod: ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTOffpolicyWorkflowTemplate.enable_jit :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} learn(state: evorl.types.State) -> evorl.types.State :canonical: evorl.algorithms.meta.pbt_workflow.PBTOffpolicyWorkflowTemplate.learn ```` ````{py:method} setup(key: chex.PRNGKey) :canonical: evorl.algorithms.meta.pbt_workflow.PBTOffpolicyWorkflowTemplate.setup ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTOffpolicyWorkflowTemplate.setup :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} step(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.algorithms.meta.pbt_workflow.PBTOffpolicyWorkflowTemplate.step ```` ````` ```{py:class} PBTOptState :canonical: evorl.algorithms.meta.pbt_workflow.PBTOptState Bases: {py:obj}`evorl.types.PyTreeData` ``` `````{py:class} PBTTrainMetric :canonical: evorl.algorithms.meta.pbt_workflow.PBTTrainMetric Bases: {py:obj}`evorl.metrics.MetricBase` ````{py:attribute} pop :canonical: evorl.algorithms.meta.pbt_workflow.PBTTrainMetric.pop :type: chex.ArrayTree :value: > None ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTTrainMetric.pop :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_episode_lengths :canonical: evorl.algorithms.meta.pbt_workflow.PBTTrainMetric.pop_episode_lengths :type: chex.Array :value: > None ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTTrainMetric.pop_episode_lengths :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_episode_returns :canonical: evorl.algorithms.meta.pbt_workflow.PBTTrainMetric.pop_episode_returns :type: chex.Array :value: > None ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTTrainMetric.pop_episode_returns :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} pop_train_metrics :canonical: evorl.algorithms.meta.pbt_workflow.PBTTrainMetric.pop_train_metrics :type: evorl.metrics.MetricBase :value: > None ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTTrainMetric.pop_train_metrics :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} PBTWorkflowBase(workflow: evorl.workflows.RLWorkflow, evaluator: evorl.evaluators.Evaluator, config: omegaconf.DictConfig) :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase Bases: {py:obj}`evorl.workflows.Workflow` ````{py:method} apply_hyperparams_to_workflow_state(workflow_state: evorl.types.State, hyperparams: evorl.types.PyTreeDict[str, chex.Numeric]) -> evorl.types.State :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase.apply_hyperparams_to_workflow_state :abstractmethod: ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase.apply_hyperparams_to_workflow_state :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} build_from_config(config: omegaconf.DictConfig, enable_multi_devices=True, enable_jit: bool = True) :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase.build_from_config :classmethod: ```` ````{py:method} enable_jit() -> None :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase.enable_jit :classmethod: ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase.enable_jit :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} evaluate(state: evorl.types.State) -> evorl.types.State :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase.evaluate ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase.evaluate :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} exploit_and_explore(pbt_opt_state: evorl.algorithms.meta.pbt_workflow.PBTOptState, pop: chex.ArrayTree, pop_workflow_state: evorl.types.State, pop_metrics: chex.ArrayTree, key: chex.PRNGKey) -> tuple[chex.ArrayTree, evorl.types.State, evorl.algorithms.meta.pbt_workflow.PBTOptState] :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase.exploit_and_explore :abstractmethod: ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase.exploit_and_explore :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} setup(key: chex.PRNGKey) :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase.setup ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase.setup :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} step(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase.step ```` ````` `````{py:class} PBTWorkflowMetric :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowMetric Bases: {py:obj}`evorl.metrics.MetricBase` ````{py:attribute} iterations :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowMetric.iterations :type: chex.Array :value: > 'zeros(...)' ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTWorkflowMetric.iterations :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} sampled_timesteps_m :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowMetric.sampled_timesteps_m :type: chex.Array :value: > 'zeros(...)' ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTWorkflowMetric.sampled_timesteps_m :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} PBTWorkflowTemplate(workflow: evorl.workflows.RLWorkflow, evaluator: evorl.evaluators.Evaluator, config: omegaconf.DictConfig) :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowTemplate Bases: {py:obj}`evorl.algorithms.meta.pbt_workflow.PBTWorkflowBase` ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTWorkflowTemplate :parser: autodoc2_docstrings_parser ``` ````{py:method} exploit_and_explore(pbt_opt_state: evorl.algorithms.meta.pbt_workflow.PBTOptState, pop: chex.ArrayTree, pop_workflow_state: evorl.types.State, pop_metrics: chex.ArrayTree, key: chex.PRNGKey) -> tuple[chex.ArrayTree, evorl.types.State, evorl.algorithms.meta.pbt_workflow.PBTOptState] :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowTemplate.exploit_and_explore ```{autodoc2-docstring} evorl.algorithms.meta.pbt_workflow.PBTWorkflowTemplate.exploit_and_explore :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} learn(state: evorl.types.State) -> evorl.types.State :canonical: evorl.algorithms.meta.pbt_workflow.PBTWorkflowTemplate.learn ```` `````