# {py:mod}`evorl.algorithms.a2c` ```{py:module} evorl.algorithms.a2c ``` ```{autodoc2-docstring} evorl.algorithms.a2c :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`A2CAgent ` - * - {py:obj}`A2CNetworkParams ` - ```{autodoc2-docstring} evorl.algorithms.a2c.A2CNetworkParams :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`A2CWorkflow ` - ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`make_mlp_a2c_agent ` - ```{autodoc2-docstring} evorl.algorithms.a2c.make_mlp_a2c_agent :parser: autodoc2_docstrings_parser :summary: ``` ```` ### API `````{py:class} A2CAgent :canonical: evorl.algorithms.a2c.A2CAgent Bases: {py:obj}`evorl.agent.Agent` ````{py:method} compute_actions(agent_state: evorl.agent.AgentState, sample_batch: evorl.sample_batch.SampleBatch, key: chex.PRNGKey) -> tuple[evorl.types.Action, evorl.types.PolicyExtraInfo] :canonical: evorl.algorithms.a2c.A2CAgent.compute_actions ```` ````{py:method} compute_values(agent_state: evorl.agent.AgentState, sample_batch: evorl.sample_batch.SampleBatch) -> chex.Array :canonical: evorl.algorithms.a2c.A2CAgent.compute_values ```{autodoc2-docstring} evorl.algorithms.a2c.A2CAgent.compute_values :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} continuous_action :canonical: evorl.algorithms.a2c.A2CAgent.continuous_action :type: bool :value: > None ```{autodoc2-docstring} evorl.algorithms.a2c.A2CAgent.continuous_action :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} evaluate_actions(agent_state: evorl.agent.AgentState, sample_batch: evorl.sample_batch.SampleBatch, key: chex.PRNGKey) -> tuple[evorl.types.Action, evorl.types.PolicyExtraInfo] :canonical: evorl.algorithms.a2c.A2CAgent.evaluate_actions ```` ````{py:method} init(obs_space: evorl.envs.Space, action_space: evorl.envs.Space, key: chex.PRNGKey) -> evorl.agent.AgentState :canonical: evorl.algorithms.a2c.A2CAgent.init ```{autodoc2-docstring} evorl.algorithms.a2c.A2CAgent.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} loss(agent_state: evorl.agent.AgentState, sample_batch: evorl.sample_batch.SampleBatch, key: chex.PRNGKey) -> evorl.types.LossDict :canonical: evorl.algorithms.a2c.A2CAgent.loss ```{autodoc2-docstring} evorl.algorithms.a2c.A2CAgent.loss :parser: autodoc2_docstrings_parser ``` ```` ````{py:property} normalize_obs :canonical: evorl.algorithms.a2c.A2CAgent.normalize_obs ```{autodoc2-docstring} evorl.algorithms.a2c.A2CAgent.normalize_obs :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} obs_preprocessor :canonical: evorl.algorithms.a2c.A2CAgent.obs_preprocessor :type: typing.Any :value: > 'pytree_field(...)' ```{autodoc2-docstring} evorl.algorithms.a2c.A2CAgent.obs_preprocessor :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} policy_network :canonical: evorl.algorithms.a2c.A2CAgent.policy_network :type: flax.linen.Module :value: > None ```{autodoc2-docstring} evorl.algorithms.a2c.A2CAgent.policy_network :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} value_network :canonical: evorl.algorithms.a2c.A2CAgent.value_network :type: flax.linen.Module :value: > None ```{autodoc2-docstring} evorl.algorithms.a2c.A2CAgent.value_network :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} A2CNetworkParams :canonical: evorl.algorithms.a2c.A2CNetworkParams Bases: {py:obj}`evorl.types.PyTreeData` ```{autodoc2-docstring} evorl.algorithms.a2c.A2CNetworkParams :parser: autodoc2_docstrings_parser ``` ````{py:attribute} policy_params :canonical: evorl.algorithms.a2c.A2CNetworkParams.policy_params :type: evorl.types.Params :value: > None ```{autodoc2-docstring} evorl.algorithms.a2c.A2CNetworkParams.policy_params :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} value_params :canonical: evorl.algorithms.a2c.A2CNetworkParams.value_params :type: evorl.types.Params :value: > None ```{autodoc2-docstring} evorl.algorithms.a2c.A2CNetworkParams.value_params :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} A2CWorkflow(env: evorl.envs.Env, agent: evorl.agent.Agent, optimizer: optax.GradientTransformation, evaluator: evorl.evaluators.Evaluator, config: omegaconf.DictConfig) :canonical: evorl.algorithms.a2c.A2CWorkflow Bases: {py:obj}`evorl.workflows.OnPolicyWorkflow` ````{py:method} learn(state: evorl.types.State) -> evorl.types.State :canonical: evorl.algorithms.a2c.A2CWorkflow.learn ```` ````{py:method} name() :canonical: evorl.algorithms.a2c.A2CWorkflow.name :classmethod: ```` ````{py:method} step(state: evorl.types.State) -> tuple[evorl.metrics.MetricBase, evorl.types.State] :canonical: evorl.algorithms.a2c.A2CWorkflow.step ```` ````` ````{py:function} make_mlp_a2c_agent(action_space: evorl.envs.Space, actor_hidden_layer_sizes: tuple[int] = (256, 256), critic_hidden_layer_sizes: tuple[int] = (256, 256), normalize_obs: bool = False, policy_obs_key: str = '', value_obs_key: str = '') -> evorl.algorithms.a2c.A2CAgent :canonical: evorl.algorithms.a2c.make_mlp_a2c_agent ```{autodoc2-docstring} evorl.algorithms.a2c.make_mlp_a2c_agent :parser: autodoc2_docstrings_parser ``` ````