class_docstr: Container class for the model serialization dictionary.  Provides
  helper methods for searching and manipulating the dictionary.
  
  Arguments:
      pdict (dict or str): the configuration dictionary generated
                           by Model.serialize() or the name of a
                           pickle file containing that dictionary
docstr: Compare two ModelDescription object instances
  
  Arguments:
      o1 (ModelDescription, dict): object to compare
      o2 (ModelDescription, dict): object to compare
  
  Returns:
      bool: true if objects match
docstr_tok: ["Compare","two","ModelDescription","object","instances","Arguments",":","o1","(","ModelDescription",",","dict",")",":","object","to","compare","o2","(","ModelDescription",",","dict",")",":","object","to","compare","Returns",":","bool",":","true","if","objects","match"]
code: def match(o1, o2):
      """
      Compare two ModelDescription object instances
  
      Arguments:
          o1 (ModelDescription, dict): object to compare
          o2 (ModelDescription, dict): object to compare
  
      Returns:
          bool: true if objects match
      """
      type_o1 = type(o1)
      if type_o1 is not type(o2):
          return False
  
      if type_o1 is dict:
          if set(o1.keys()) != set(o2.keys()):
              neon_logger.display("Missing keys")
              return False
          for key in o1:
              if key == "name":
                  # ignore layer names
                  return True
              if not ModelDescription.match(o1[key], o2[key]):
                  return False
      elif any([type_o1 is x for x in [list, tuple]]):
          if len(o1) != len(o2):
              return False
          for val1, val2 in zip(o1, o2):
              if not ModelDescription.match(val1, val2):
                  return False
      elif type_o1 is np.ndarray:
          match = np.array_equal(o1, o2)
          return match
      else:
          return o1 == o2
      return True
  
file_path: neon/neon/util/modeldesc.py
imports: from builtins import zip
  import numpy
  import re
  from neon.util.persist import load_obj
  from neon import logger
label_desc: Use image node_id 7 for calling the ModelDescription obj's underlying member method code with example usage: obj.match(o1, o2) and returns: True, False, False, True, False, False, match, unknown, False