class_docstr: Generates model graph, each node is created from single or multiple jit trace nodes.
docstr: Find predecessor node of the given node
  
  Parameters
  ----------
  unique_name : str
      The unique name of the node
  
  Returns
  -------
  list
      a list of nodes who are the given node's predecessor
code: def find_predecessors(self, unique_name):
      """
      Find predecessor node of the given node
  
      Parameters
      ----------
      unique_name : str
          The unique name of the node
  
      Returns
      -------
      list
          a list of nodes who are the given node's predecessor
      """
      predecessors = []
      for _input in self.name_to_node[unique_name].inputs:
          if not _input in self.output_to_node:
              _logger.debug(
                  "cannot find node with %s as its output", _input
              )
          else:
              node_py = self.output_to_node[_input]
              predecessors.append(node_py.unique_name)
      return predecessors
  
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 14 for calling the TorchModuleGraph obj's underlying member method code with example usage: obj.find_predecessors(unique_name) and returns: predecessors