code: def init_default_policy_network(
      agent_type: DefaultSupportedAgent,
      network: ma_types.Networks,
      agent_spec: specs.EnvironmentSpec,
      config: ma_types.AgentConfig,
      eval_mode: ma_types.EvalMode = False,
  ) -> ma_types.PolicyNetwork:
      """Returns default policy network for a single agent."""
      if agent_type == DefaultSupportedAgent.TD3:
          sigma = 0.0 if eval_mode else config.sigma
          return td3.get_default_behavior_policy(
              network, agent_spec.actions, sigma=sigma
          )
      elif agent_type == DefaultSupportedAgent.SAC:
          return sac.apply_policy_and_sample(
              network, eval_mode=eval_mode
          )
      elif agent_type == DefaultSupportedAgent.PPO:
          return ppo.make_inference_fn(network, evaluation=eval_mode)
      else:
          raise ValueError(f"Unsupported agent type: {agent_type}.")
  
file_path: acme/acme/agents/jax/multiagent/decentralized/factories.py
imports: import enum
  from typing import Any, Dict, Optional
  from acme import specs
  from acme.adders import reverb
  from acme.agents.jax import builders
  from acme.agents.jax import ppo
  from acme.agents.jax import sac
  from acme.agents.jax import td3
  from acme.multiagent import types
  from acme.multiagent import utils
label_desc: Use image node_id 2 for calling a global function with example usage: init_default_policy_network(agent_type, network, agent_spec, config, eval_mode) and returns: td3, sac, ppo