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

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

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

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

Classes
~~~~~~~

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

   * - :py:obj:`BaseCritic <rofunc.learning.RofuncRL.models.critic_models.BaseCritic>`
     -
   * - :py:obj:`Critic <rofunc.learning.RofuncRL.models.critic_models.Critic>`
     -

API
~~~

.. py:class:: BaseCritic(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(), cfg_name: str = 'critic')
   :canonical: rofunc.learning.RofuncRL.models.critic_models.BaseCritic

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

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

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.critic_models.BaseCritic.state_norm

   .. py:method:: value_re_norm(value: torch.Tensor) -> torch.Tensor
      :canonical: rofunc.learning.RofuncRL.models.critic_models.BaseCritic.value_re_norm

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.critic_models.BaseCritic.value_re_norm

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

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.critic_models.BaseCritic.freeze_parameters

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

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.critic_models.BaseCritic.update_parameters

.. py:class:: Critic(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(), cfg_name: str = 'critic')
   :canonical: rofunc.learning.RofuncRL.models.critic_models.Critic

   Bases: :py:obj:`rofunc.learning.RofuncRL.models.critic_models.BaseCritic`

   .. py:method:: forward(state: torch.Tensor, action: torch.Tensor = None) -> torch.Tensor
      :canonical: rofunc.learning.RofuncRL.models.critic_models.Critic.forward

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.models.critic_models.Critic.forward
