class_docstr: Generates model graph, each node is created from single or multiple jit trace nodes.
docstr: Retrieve module name from scope name.
  Parameters:
  -----------
  scope_name: str
      scope_name of a graph node, for example:
      for pytorch 1.3.1: MyModel/BackboneModel[backbone]/Conv2d[conv2]
      for pytorch 1.4.0: __module.backbone/__module.backbone.conv2
  
  Returns:
  -------
  str
      module name, such as backbone.conv2
code: def _get_module_name(self, scope_name):
      """
      Retrieve module name from scope name.
      Parameters:
      -----------
      scope_name: str
          scope_name of a graph node, for example:
          for pytorch 1.3.1: MyModel/BackboneModel[backbone]/Conv2d[conv2]
          for pytorch 1.4.0: __module.backbone/__module.backbone.conv2
  
      Returns:
      -------
      str
          module name, such as backbone.conv2
      """
      if torch.__version__ >= "1.4.0":
          return scope_name.split("/")[-1].replace("__module.", "")
      else:
          return ".".join(re.findall(r"\[(.*?)\]", scope_name))
  
imports: import logging
  import queue
  import re
  from collections import defaultdict
  import torch
  from torch.utils.tensorboard._pytorch_graph import NodePy, NodePyIO, NodePyOP, GraphPy
label_desc: Use image node_id 8 for calling the TorchModuleGraph obj's underlying member method code with example usage: obj._get_module_name(scope_name) and returns: scope_name, str