code: def on_fit_end(self, trainer: Trainer, pl_module: LightningModule):
      if self.should_benchmark(trainer):
          avg_train_time = sum(self.train_times) / len(self.train_times)
          avg_val_time = sum(self.val_times) / len(self.val_times)
          avg_train_step_time = sum(self.train_steps_times) / len(
              self.train_steps_times
          )
          avg_val_step_time = sum(self.val_steps_times) / len(
              self.val_steps_times
          )
  
          logging.info(
              f"Average-Training-Epoch-Time: {avg_train_time} [sec]"
          )
          logging.info(
              f"Average-Validation-Epoch-Time: {avg_val_time} [sec]"
          )
          logging.info(
              f"Average-Training-Step-Time: {avg_train_step_time} [sec]"
          )
          logging.info(
              f"Average-Validation-Step-Time: {avg_val_step_time} [sec]"
          )
  
file_path: NeMo/examples/multimodal/x_to_nerf/benchmark_callback.py
imports: import time
  from typing import Optional
  from pytorch_lightning import Callback, LightningModule, Trainer
  from nemo.utils import logging
label_desc: Use image node_id 11 for calling the BenchmarkCallback obj's underlying member method code with example usage: obj.on_fit_end(trainer, pl_module) without return types