code: def test_forward_elapsed_time(self) -> None:
      pretrained_model = models.alexnet(
          weights=AlexNet_Weights.IMAGENET1K_V1
      )
      inp = torch.randn(1, 3, 224, 224)
      ms1 = get_summary_and_prune(
          pretrained_model, module_args=(inp,), max_depth=4
      )
      stack = [ms1] + [
          ms1.submodule_summaries[key]
          for key in ms1.submodule_summaries
      ]
      # check all submodule summaries have been timed
      for ms in stack:
          self.assertNotEqual(ms.forward_elapsed_time_ms, "?")
          self.assertGreater(float(ms.forward_elapsed_time_ms), 0)
          stack.extend(
              [
                  ms.submodule_summaries[key]
                  for key in ms.submodule_summaries
              ]
          )
  
imports: import unittest
  from typing import Any, Dict, Optional, Tuple
  import torch
  from torchtnt.utils.module_summary import _get_human_readable_count, get_module_summary, ModuleSummary, prune_module_summary
  from torchvision import models
  from torchvision.models.alexnet import AlexNet_Weights
  from torchvision.models.resnet import ResNet18_Weights
label_desc: Use image node_id 13 for calling the ModuleSummaryTest obj's underlying member method code with example usage: obj.test_forward_elapsed_time() without return types