code: def iter_model_names(self, args):
      from torchbenchmark import (
          _list_canary_model_paths,
          _list_model_paths,
      )
  
      models = _list_model_paths()
      models += [
          f
          for f in _list_canary_model_paths()
          if os.path.basename(f) in CANARY_MODELS
      ]
      models.sort()
  
      start, end = self.get_benchmark_indices(len(models))
      for index, model_path in enumerate(models):
          if index < start or index >= end:
              continue
  
          model_name = os.path.basename(model_path)
          if (
              not re.search("|".join(args.filter), model_name, re.I)
              or re.search("|".join(args.exclude), model_name, re.I)
              or model_name in args.exclude_exact
              or model_name in self.skip_models
          ):
              continue
  
          yield model_name
  
imports: import gc
  import importlib
  import logging
  import os
  import re
  import sys
  import warnings
  from os.path import abspath, exists
  import torch
  from torch._dynamo.testing import collect_results, reduce_to_scalar_loss
  from torch._dynamo.utils import clone_inputs
label_desc: Use image node_id 17 for calling the TorchBenchmarkRunner obj's underlying member method code with example usage: obj.iter_model_names(args) without return types