class_docstr: The Catalog class used to build models for PPO.
  
  PPOCatalog provides the following models:
      - ActorCriticEncoder: The encoder used to encode the observations.
      - Pi Head: The head used to compute the policy logits.
      - Value Function Head: The head used to compute the value function.
  
  The ActorCriticEncoder is a wrapper around Encoders to produce separate outputs
  for the policy and value function. See implementations of PPORLModule for
  more details.
  
  Any custom ActorCriticEncoder can be built by overriding the
  build_actor_critic_encoder() method. Alternatively, the ActorCriticEncoderConfig
  at PPOCatalog.actor_critic_encoder_config can be overridden to build a custom
  ActorCriticEncoder during RLModule runtime.
  
  Any custom head can be built by overriding the build_pi_head() and build_vf_head()
  methods. Alternatively, the PiHeadConfig and VfHeadConfig can be overridden to
  build custom heads during RLModule runtime.
class_docstr_tok: ["The","Catalog","class","used","to","build","models","for","PPO",".","PPOCatalog","provides","the","following","models",":","-","ActorCriticEncoder",":","The","encoder","used","to","encode","the","observations",".","-","Pi","Head",":","The","head","used","to","compute","the","policy","logits",".","-","Value","Function","Head",":","The","head","used","to","compute","the","value","function",".","The","ActorCriticEncoder","is","a","wrapper","around","Encoders","to","produce","separate","outputs","for","the","policy","and","value","function",".","See","implementations","of","PPORLModule","for","more","details",".","Any","custom","ActorCriticEncoder","can","be","built","by","overriding","the","build_actor_critic_encoder","(",")","method",".","Alternatively",",","the","ActorCriticEncoderConfig","at","PPOCatalog.actor_critic_encoder_config","can","be","overridden","to","build","a","custom","ActorCriticEncoder","during","RLModule","runtime",".","Any","custom","head","can","be","built","by","overriding","the","build_pi_head","(",")","and","build_vf_head","(",")","methods",".","Alternatively",",","the","PiHeadConfig","and","VfHeadConfig","can","be","overridden","to","build","custom","heads","during","RLModule","runtime","."]
docstr: Builds the ActorCriticEncoder.
  
  The default behavior is to build the encoder from the encoder_config.
  This can be overridden to build a custom ActorCriticEncoder as a means of
  configuring the behavior of a PPORLModule implementation.
  
  Args:
      framework: The framework to use. Either "torch" or "tf2".
  
  Returns:
      The ActorCriticEncoder.
docstr_tok: ["Builds","the","ActorCriticEncoder",".","The","default","behavior","is","to","build","the","encoder","from","the","encoder_config",".","This","can","be","overridden","to","build","a","custom","ActorCriticEncoder","as","a","means","of","configuring","the","behavior","of","a","PPORLModule","implementation",".","Args",":","framework",":","The","framework","to","use",".","Either","``","torch","''","or","``","tf2","''",".","Returns",":","The","ActorCriticEncoder","."]
code: def build_actor_critic_encoder(
      self, framework: str
  ) -> ActorCriticEncoder:
      """Builds the ActorCriticEncoder.
  
      The default behavior is to build the encoder from the encoder_config.
      This can be overridden to build a custom ActorCriticEncoder as a means of
      configuring the behavior of a PPORLModule implementation.
  
      Args:
          framework: The framework to use. Either "torch" or "tf2".
  
      Returns:
          The ActorCriticEncoder.
      """
      return self.actor_critic_encoder_config.build(framework=framework)
  
file_path: ray/rllib/algorithms/ppo/ppo_catalog.py
imports: import gymnasium
  from ray.rllib.core.models.catalog import Catalog
  from ray.rllib.core.models.configs import ActorCriticEncoderConfig, MLPHeadConfig, FreeLogStdMLPHeadConfig
  from ray.rllib.core.models.base import Encoder, ActorCriticEncoder, Model
  from ray.rllib.utils import override
  from ray.rllib.utils.annotations import OverrideToImplementCustomLogic
label_desc: Use image node_id 2 for calling the PPOCatalog obj's underlying member method code with example usage: obj.build_actor_critic_encoder(framework) and returns: self