class_docstr: A class to wrap training code.
code: def get_saved_models_info(self):
      paths = glob.glob(os.path.join(self.args.model_dir, "*.pth"))
      paths.sort()
  
      def get_numbers(
          items, delimiter, idx, replace_word, must_contain=""
      ):
          return list(
              set(
                  [
                      int(
                          name.split(delimiter)[idx].replace(
                              replace_word, ""
                          )
                      )
                      for name in basenames
                      if must_contain in name
                  ]
              )
          )
  
      basenames = [
          os.path.basename(path.rsplit(".", 1)[0]) for path in paths
      ]
      epochs = get_numbers(basenames, "_", 1, "epoch")
      shared_steps = get_numbers(basenames, "_", 2, "step", "shared")
      controller_steps = get_numbers(
          basenames, "_", 2, "step", "controller"
      )
  
      epochs.sort()
      shared_steps.sort()
      controller_steps.sort()
  
      return epochs, shared_steps, controller_steps
  
imports: import contextlib
  import glob
  import math
  import os
  import numpy
  import scipy.signal
  from tensorboard import TensorBoard
  import torch
  from torch import nn
  import torch.nn.parallel
  from torch.autograd import Variable
  import models
  import utils
label_desc: Use image node_id 15 for calling the Trainer obj's underlying member method code with example usage: obj.get_saved_models_info() and returns: epochs,  shared_steps,  controller_steps, list