code: def _check_input(self, training_batch: rlt.ParametricDqnInput):
      assert isinstance(training_batch, rlt.ParametricDqnInput)
      assert (
          training_batch.not_terminal.dim()
          == training_batch.reward.dim()
          == 2
      )
      assert (
          training_batch.not_terminal.shape[1]
          == training_batch.reward.shape[1]
          == 1
      )
      assert (
          training_batch.action.float_features.dim()
          == training_batch.next_action.float_features.dim()
          == 2
      )
  
imports: import logging
  from typing import Optional, Tuple
  import reagent.core.parameters
  import reagent.core.types
  import torch
  import torch.nn
  import torch.nn.functional
  from reagent.core.configuration import resolve_defaults
  from reagent.core.dataclasses import field
  from reagent.optimizer import Optimizer__Union, SoftUpdate
  from reagent.training.dqn_trainer_base import DQNTrainerMixin
  from reagent.training.reagent_lightning_module import ReAgentLightningModule
  from reagent.training.rl_trainer_pytorch import RLTrainerMixin
label_desc: Use image node_id 3 for calling the ParametricDQNTrainer obj's underlying member method code with example usage: obj._check_input(training_batch) without return types