:py:mod:`rofunc.learning.RofuncRL.models.actor_models`
======================================================

.. py:module:: rofunc.learning.RofuncRL.models.actor_models

.. autodoc2-docstring:: rofunc.learning.RofuncRL.models.actor_models
   :allowtitles:

Module Contents
---------------

Classes
~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`BaseActor <rofunc.learning.RofuncRL.models.actor_models.BaseActor>`
     -
   * - :py:obj:`ActorPPO_Beta <rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Beta>`
     -
   * - :py:obj:`ActorPPO_Gaussian <rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Gaussian>`
     -
   * - :py:obj:`ActorSAC <rofunc.learning.RofuncRL.models.actor_models.ActorSAC>`
     -
   * - :py:obj:`ActorTD3 <rofunc.learning.RofuncRL.models.actor_models.ActorTD3>`
     -
   * - :py:obj:`ActorAMP <rofunc.learning.RofuncRL.models.actor_models.ActorAMP>`
     -

API
~~~

.. py:class:: BaseActor(cfg: omegaconf.DictConfig, observation_space: typing.Optional[typing.Union[int, typing.Tuple[int], gym.Space, gymnasium.Space, typing.List]], action_space: typing.Optional[typing.Union[int, typing.Tuple[int], gym.Space, gymnasium.Space]], state_encoder: typing.Optional[torch.nn.Module] = EmptyEncoder())
   :canonical: rofunc.learning.RofuncRL.models.actor_models.BaseActor

   Bases: :py:obj:`torch.nn.Module`

   .. py:method:: state_norm(state: torch.Tensor) -> torch.Tensor
      :canonical: rofunc.learning.RofuncRL.models.actor_models.BaseActor.state_norm

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.actor_models.BaseActor.state_norm

   .. py:method:: freeze_parameters(freeze: bool = True) -> None
      :canonical: rofunc.learning.RofuncRL.models.actor_models.BaseActor.freeze_parameters

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.actor_models.BaseActor.freeze_parameters

   .. py:method:: update_parameters(model: torch.nn.Module, polyak: float = 1) -> None
      :canonical: rofunc.learning.RofuncRL.models.actor_models.BaseActor.update_parameters

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.actor_models.BaseActor.update_parameters

.. py:class:: ActorPPO_Beta(cfg: omegaconf.DictConfig, observation_space: typing.Optional[typing.Union[int, typing.Tuple[int], gym.Space, gymnasium.Space]], action_space: typing.Optional[typing.Union[int, typing.Tuple[int], gym.Space, gymnasium.Space]], state_encoder: typing.Optional[torch.nn.Module] = EmptyEncoder())
   :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Beta

   Bases: :py:obj:`rofunc.learning.RofuncRL.models.actor_models.BaseActor`

   .. py:method:: forward(state: torch.Tensor)
      :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Beta.forward

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Beta.forward

   .. py:method:: get_dist(state)
      :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Beta.get_dist

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Beta.get_dist

   .. py:method:: mean(state)
      :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Beta.mean

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Beta.mean

.. py:class:: ActorPPO_Gaussian(cfg: omegaconf.DictConfig, observation_space: typing.Optional[typing.Union[int, typing.Tuple[int], gym.Space, gymnasium.Space]], action_space: typing.Optional[typing.Union[int, typing.Tuple[int], gym.Space, gymnasium.Space]], state_encoder: typing.Optional[torch.nn.Module] = EmptyEncoder())
   :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Gaussian

   Bases: :py:obj:`rofunc.learning.RofuncRL.models.actor_models.BaseActor`

   .. py:method:: forward(state, action=None, deterministic=False)
      :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Gaussian.forward

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Gaussian.forward

   .. py:method:: get_entropy()
      :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Gaussian.get_entropy

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Gaussian.get_entropy

   .. py:method:: get_value(state)
      :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Gaussian.get_value

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Gaussian.get_value

.. py:class:: ActorSAC(cfg: omegaconf.DictConfig, observation_space: typing.Optional[typing.Union[int, typing.Tuple[int], gym.Space, gymnasium.Space]], action_space: typing.Optional[typing.Union[int, typing.Tuple[int], gym.Space, gymnasium.Space]], state_encoder: typing.Optional[torch.nn.Module] = EmptyEncoder())
   :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorSAC

   Bases: :py:obj:`rofunc.learning.RofuncRL.models.actor_models.BaseActor`

   .. py:method:: forward(state, action=None)
      :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorSAC.forward

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.actor_models.ActorSAC.forward

.. py:class:: ActorTD3(cfg: omegaconf.DictConfig, observation_space: typing.Optional[typing.Union[int, typing.Tuple[int], gym.Space, gymnasium.Space]], action_space: typing.Optional[typing.Union[int, typing.Tuple[int], gym.Space, gymnasium.Space]], state_encoder: typing.Optional[torch.nn.Module] = EmptyEncoder())
   :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorTD3

   Bases: :py:obj:`rofunc.learning.RofuncRL.models.actor_models.ActorSAC`

   .. py:method:: forward(state)
      :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorTD3.forward

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.actor_models.ActorTD3.forward

.. py:class:: ActorAMP(cfg: omegaconf.DictConfig, observation_space: typing.Optional[typing.Union[int, typing.Tuple[int], gym.Space, gymnasium.Space]], action_space: typing.Optional[typing.Union[int, typing.Tuple[int], gym.Space, gymnasium.Space]], state_encoder: typing.Optional[torch.nn.Module] = EmptyEncoder())
   :canonical: rofunc.learning.RofuncRL.models.actor_models.ActorAMP

   Bases: :py:obj:`rofunc.learning.RofuncRL.models.actor_models.ActorPPO_Gaussian`
