# {py:mod}`evorl.algorithms.contrib.pop_td3` ```{py:module} evorl.algorithms.contrib.pop_td3 ``` ```{autodoc2-docstring} evorl.algorithms.contrib.pop_td3 :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`PopTD3Workflow ` - ```{autodoc2-docstring} evorl.algorithms.contrib.pop_td3.PopTD3Workflow :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`WorkflowMetric ` - ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`flatten_pop_rollout_trajectory ` - ```{autodoc2-docstring} evorl.algorithms.contrib.pop_td3.flatten_pop_rollout_trajectory :parser: autodoc2_docstrings_parser :summary: ``` ```` ### API `````{py:class} PopTD3Workflow(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.algorithms.contrib.pop_td3.PopTD3Workflow Bases: {py:obj}`evorl.algorithms.td3.TD3Workflow` ```{autodoc2-docstring} evorl.algorithms.contrib.pop_td3.PopTD3Workflow :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.contrib.pop_td3.PopTD3Workflow.build_from_config :classmethod: ```` ````{py:method} evaluate(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.algorithms.contrib.pop_td3.PopTD3Workflow.evaluate ```` ````{py:method} learn(state: evorl.types.State) -> evorl.types.State :canonical: evorl.algorithms.contrib.pop_td3.PopTD3Workflow.learn ```` ````{py:method} name() :canonical: evorl.algorithms.contrib.pop_td3.PopTD3Workflow.name :classmethod: ```` ````{py:method} setup(key: chex.PRNGKey) -> evorl.types.State :canonical: evorl.algorithms.contrib.pop_td3.PopTD3Workflow.setup ```{autodoc2-docstring} evorl.algorithms.contrib.pop_td3.PopTD3Workflow.setup :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} step(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.algorithms.contrib.pop_td3.PopTD3Workflow.step ```` ````` `````{py:class} WorkflowMetric :canonical: evorl.algorithms.contrib.pop_td3.WorkflowMetric Bases: {py:obj}`evorl.metrics.MetricBase` ````{py:attribute} iterations :canonical: evorl.algorithms.contrib.pop_td3.WorkflowMetric.iterations :type: chex.Array :value: > 'zeros(...)' ```{autodoc2-docstring} evorl.algorithms.contrib.pop_td3.WorkflowMetric.iterations :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} sampled_episodes :canonical: evorl.algorithms.contrib.pop_td3.WorkflowMetric.sampled_episodes :type: chex.Array :value: > 'zeros(...)' ```{autodoc2-docstring} evorl.algorithms.contrib.pop_td3.WorkflowMetric.sampled_episodes :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} sampled_timesteps :canonical: evorl.algorithms.contrib.pop_td3.WorkflowMetric.sampled_timesteps :type: chex.Array :value: > 'zeros(...)' ```{autodoc2-docstring} evorl.algorithms.contrib.pop_td3.WorkflowMetric.sampled_timesteps :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} sampled_timesteps_per_agent :canonical: evorl.algorithms.contrib.pop_td3.WorkflowMetric.sampled_timesteps_per_agent :type: chex.Array :value: > 'zeros(...)' ```{autodoc2-docstring} evorl.algorithms.contrib.pop_td3.WorkflowMetric.sampled_timesteps_per_agent :parser: autodoc2_docstrings_parser ``` ```` ````` ````{py:function} flatten_pop_rollout_trajectory(trajectory: evorl.sample_batch.SampleBatch) -> evorl.sample_batch.SampleBatch :canonical: evorl.algorithms.contrib.pop_td3.flatten_pop_rollout_trajectory ```{autodoc2-docstring} evorl.algorithms.contrib.pop_td3.flatten_pop_rollout_trajectory :parser: autodoc2_docstrings_parser ``` ````