# {py:mod}`evorl.algorithms.contrib.pop_ppo` ```{py:module} evorl.algorithms.contrib.pop_ppo ``` ```{autodoc2-docstring} evorl.algorithms.contrib.pop_ppo :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`PopPPOWorkflow ` - ```` ### API `````{py:class} PopPPOWorkflow(env: evorl.envs.Env, agent: evorl.agent.Agent, optimizer: optax.GradientTransformation, evaluator: evorl.evaluators.Evaluator, config: omegaconf.DictConfig) :canonical: evorl.algorithms.contrib.pop_ppo.PopPPOWorkflow Bases: {py:obj}`evorl.algorithms.ppo.PPOWorkflow` ````{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_ppo.PopPPOWorkflow.build_from_config :classmethod: ```` ````{py:method} evaluate(state) :canonical: evorl.algorithms.contrib.pop_ppo.PopPPOWorkflow.evaluate ```` ````{py:method} learn(state: evorl.types.State) -> evorl.types.State :canonical: evorl.algorithms.contrib.pop_ppo.PopPPOWorkflow.learn ```` ````{py:method} name() :canonical: evorl.algorithms.contrib.pop_ppo.PopPPOWorkflow.name :classmethod: ```` ````{py:method} setup(key: chex.PRNGKey) -> evorl.types.State :canonical: evorl.algorithms.contrib.pop_ppo.PopPPOWorkflow.setup ```{autodoc2-docstring} evorl.algorithms.contrib.pop_ppo.PopPPOWorkflow.setup :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} step(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.algorithms.contrib.pop_ppo.PopPPOWorkflow.step ```` `````