code: def build_trainer(
      self,
      normalization_data_map: Dict[str, NormalizationData],
      use_gpu: bool,
      reward_options: Optional[RewardOptions] = None,
  ) -> Seq2RewardTrainer:
      seq2reward_network = self.net_builder.value.build_value_network(
          normalization_data_map[NormalizationKey.STATE]
      )
      trainer = Seq2RewardTrainer(
          seq2reward_network=seq2reward_network,
          params=self.trainer_param,
      )
      return trainer
  
file_path: ReAgent/reagent/model_managers/model_based/seq2reward_model.py
imports: import logging
  from typing import Dict, Optional
  from reagent.core.dataclasses import dataclass, field
  from reagent.core.parameters import NormalizationData, NormalizationKey, param_hash, Seq2RewardTrainerParameters
  from reagent.model_managers.world_model_base import WorldModelBase
  from reagent.net_builder.unions import ValueNetBuilder__Union
  from reagent.net_builder.value.fully_connected import FullyConnected
  from reagent.net_builder.value.seq2reward_rnn import Seq2RewardNetBuilder
  from reagent.reporting.seq2reward_reporter import Seq2RewardReporter
  from reagent.training.world_model.seq2reward_trainer import Seq2RewardTrainer
  from reagent.workflow.types import PreprocessingOptions, RewardOptions
label_desc: Use image node_id 1 for calling the Seq2RewardModel obj's underlying member method code with example usage: obj.build_trainer(normalization_data_map, use_gpu, reward_options) and returns: trainer