code: def save_weight(name, node, level):
      weights[name] = dict()
      current_layer = weights[name]
      for p in params:
          if hasattr(node, p):
              func = getattr(node, p)
              arr = np.array(func)
              if arr.ndim >= 1:
                  current_layer[p] = arr
                  print(
                      "    " * level
                      + "{}.{} shape {} {}".format(
                          name,
                          p,
                          current_layer[p].shape,
                          current_layer[p].dtype,
                      )
                  )
  
      for p in recursive:
          if hasattr(node, p):
              func = getattr(node, p)
              if func != None:
                  for idx, subnode in enumerate(func):
                      new_name = name + ":{}:{}".format(p, idx)
                      save_weight(new_name, subnode, level + 1)
  
label_desc: Use image node_id 1 for calling a global function with example usage: save_weight(name, node, level) without return types