code: def setUp(self):
      self.batch_size = 2
  
      self.num_arms = 2
      self.params = SupervisedTrainerParameters()
  
      self.x_dim = 5
      policy_network = CBFullyConnectedNetwork(self.x_dim, [8, 10])
      self.policy = Policy(
          scorer=policy_network, sampler=GreedyActionSampler()
      )
  
      self.trainer = SupervisedTrainer(
          self.policy, **self.params.asdict()
      )
      self.batch = CBInput(
          context_arm_features=torch.tensor(
              [
                  [
                      [1, 2, 3, 6, 7],
                      [1, 2, 3, 10, 11],
                  ],
                  [
                      [1, 4, 5, 8, 9],
                      [1, 4, 5, 12, 13],
                  ],
              ],
              dtype=torch.float,
          ),
          action=torch.tensor([[0], [1]], dtype=torch.long),
          reward=torch.tensor([[1.5], [2.3]], dtype=torch.float),
      )
  
file_path: ReAgent/reagent/test/training/cb/test_supervised_trainer.py
imports: import unittest
  import torch
  from reagent.core.types import CBInput
  from reagent.gym.policies.policy import Policy
  from reagent.gym.policies.samplers.discrete_sampler import GreedyActionSampler
  from reagent.models.cb_fully_connected_network import CBFullyConnectedNetwork
  from reagent.training.cb.supervised_trainer import SupervisedTrainer
  from reagent.training.parameters import SupervisedTrainerParameters
label_desc: Use image node_id 1 for calling the TestSupervisedTrainer obj's underlying member method code with example usage: obj.setUp() without return types