class_docstr: Train models to attribute single step rewards from sparse/delayed/aggregated rewards.
  Ideas from:
  1. Synthetic Returns for Long-Term Credit Assignment: https://arxiv.org/pdf/2102.12425.pdf
  2. RUDDER: Return Decomposition for Delayed Rewards: https://arxiv.org/pdf/1806.07857.pdf
  3. Optimizing Agent Behavior over Long Time Scales by Transporting Value: https://arxiv.org/pdf/1810.06721.pdf
  4. Sequence Modeling of Temporal Credit Assignment for Episodic Reinforcement Learning: https://arxiv.org/pdf/1905.13420.pdf
class_docstr_tok: ["Train","models","to","attribute","single","step","rewards","from","sparse\/delayed\/aggregated","rewards",".","Ideas","from",":","1",".","Synthetic","Returns","for","Long-Term","Credit","Assignment",":","https",":","\/\/arxiv.org\/pdf\/2102.12425.pdf","2",".","RUDDER",":","Return","Decomposition","for","Delayed","Rewards",":","https",":","\/\/arxiv.org\/pdf\/1806.07857.pdf","3",".","Optimizing","Agent","Behavior","over","Long","Time","Scales","by","Transporting","Value",":","https",":","\/\/arxiv.org\/pdf\/1810.06721.pdf","4",".","Sequence","Modeling","of","Temporal","Credit","Assignment","for","Episodic","Reinforcement","Learning",":","https",":","\/\/arxiv.org\/pdf\/1905.13420.pdf"]
code: def get_reporter(self):
      return RewardNetworkReporter(
          self.trainer_param.loss_type,
          str(self.net_builder.value),
      )
  
imports: import logging
  from dataclasses import replace
  from typing import Dict, List, Optional, Tuple
  import reagent.core.types
  import torch
  from reagent.core.dataclasses import dataclass, field
  from reagent.core.parameters import EvaluationParameters, NormalizationData, NormalizationKey, param_hash
  from reagent.data.data_fetcher import DataFetcher
  from reagent.data.manual_data_module import ManualDataModule
  from reagent.data.reagent_data_module import ReAgentDataModule
  from reagent.model_managers.model_manager import ModelManager
  from reagent.net_builder.synthetic_reward.single_step_synthetic_reward import SingleStepSyntheticReward
  from reagent.net_builder.unions import SyntheticRewardNetBuilder__Union
  from reagent.preprocessing.types import InputColumn
  from reagent.reporting.reward_network_reporter import RewardNetworkReporter
  from reagent.training import ReAgentLightningModule, RewardNetTrainer, RewardNetworkTrainerParameters
  from reagent.workflow.identify_types_flow import identify_normalization_parameters
  from reagent.workflow.types import Dataset, PreprocessingOptions, ReaderOptions, ResourceOptions, RewardOptions, TableSpec
label_desc: Use image node_id 4 for calling the SyntheticReward obj's underlying member method code with example usage: obj.get_reporter() and returns: RewardNetworkReporter