code: def build_trainer(
      self,
      normalization_data_map: Dict[str, NormalizationData],
      use_gpu: bool,
      reward_options: Optional[RewardOptions] = None,
  ) -> TD3Trainer:
      actor_net_builder = self.actor_net_builder.value
      actor_network = actor_net_builder.build_actor(
          self.state_feature_config,
          normalization_data_map[NormalizationKey.STATE],
          normalization_data_map[NormalizationKey.ACTION],
      )
  
      critic_net_builder = self.critic_net_builder.value
      q1_network = critic_net_builder.build_q_network(
          normalization_data_map[NormalizationKey.STATE],
          normalization_data_map[NormalizationKey.ACTION],
      )
      q2_network = (
          critic_net_builder.build_q_network(
              normalization_data_map[NormalizationKey.STATE],
              normalization_data_map[NormalizationKey.ACTION],
          )
          if self.use_2_q_functions
          else None
      )
  
      trainer = TD3Trainer(
          actor_network=actor_network,
          q1_network=q1_network,
          q2_network=q2_network,
          # pyre-fixme[16]: `TD3TrainerParameters` has no attribute `asdict`.
          # pyre-fixme[16]: `TD3TrainerParameters` has no attribute `asdict`.
          **self.trainer_param.asdict(),
      )
      return trainer
  
file_path: ReAgent/reagent/model_managers/actor_critic/td3.py
imports: import logging
  from typing import Dict, Optional
  import torch
  from reagent.core.dataclasses import dataclass, field
  from reagent.core.parameters import EvaluationParameters, NormalizationData, NormalizationKey, param_hash
  from reagent.model_managers.actor_critic_base import ActorCriticBase
  from reagent.net_builder.continuous_actor.fully_connected import FullyConnected
  from reagent.net_builder.parametric_dqn.fully_connected import FullyConnected
  from reagent.net_builder.unions import ContinuousActorNetBuilder__Union, ParametricDQNNetBuilder__Union
  from reagent.reporting.td3_reporter import TD3Reporter
  from reagent.training import ReAgentLightningModule, TD3Trainer, TD3TrainerParameters
  from reagent.workflow.types import RewardOptions
label_desc: Use image node_id 2 for calling the TD3 obj's underlying member method code with example usage: obj.build_trainer(normalization_data_map, use_gpu, reward_options) and returns: trainer