class_docstr: Base class for hybrid RNNT/CTC models.
code: def validation_step(self, batch, batch_idx, dataloader_idx=0):
      tensorboard_logs = self.validation_pass(
          batch, batch_idx, dataloader_idx
      )
      if (
          type(self.trainer.val_dataloaders) == list
          and len(self.trainer.val_dataloaders) > 1
      ):
          self.validation_step_outputs[dataloader_idx].append(
              tensorboard_logs
          )
      else:
          self.validation_step_outputs.append(tensorboard_logs)
  
      return tensorboard_logs
  
imports: import copy
  import json
  import os
  import tempfile
  from typing import List, Optional
  import torch
  from omegaconf import DictConfig, OmegaConf, open_dict
  from pytorch_lightning import Trainer
  from tqdm.auto import tqdm
  from nemo.collections.asr.data.audio_to_text_dali import DALIOutputs
  from nemo.collections.asr.losses.ctc import CTCLoss
  from nemo.collections.asr.metrics.wer import WER
  from nemo.collections.asr.models.rnnt_models import EncDecRNNTModel
  from nemo.collections.asr.parts.mixins import ASRBPEMixin, InterCTCMixin
  from nemo.collections.asr.parts.submodules.ctc_decoding import CTCDecoding, CTCDecodingConfig
  from nemo.collections.asr.parts.utils.audio_utils import ChannelSelectorType
  from nemo.core.classes.common import PretrainedModelInfo
  from nemo.core.classes.mixins import AccessMixin
  from nemo.utils import logging, model_utils
label_desc: Use image node_id 8 for calling the EncDecHybridRNNTCTCModel obj's underlying member method code with example usage: obj.validation_step(batch, batch_idx, dataloader_idx) and returns: tensorboard_logs