code: def find_embedding_layer_with_path(module, module_names=[]):
      """Recursively search through a module to find an embedding layer and its module path.
  
      Returns a tuple containing the embedding layer and its module path.
      """
      for name, child_module in module.named_children():
          if isinstance(child_module, torch.nn.Embedding):
              # If an embedding layer is found, return it along with the module path
              return child_module, ".".join(module_names + [name])
          else:
              # Recursively search in the child module and update the module_names list
              found, path = find_embedding_layer_with_path(
                  child_module, module_names + [name]
              )
              if found is not None:
                  return found, path
      return None, None
  
file_path: ludwig/ludwig/utils/model_utils.py
imports: import logging
  from collections import OrderedDict
  from typing import Dict, List, Tuple
  import numpy
  import torch
label_desc: Use image node_id 3 for calling a global function with example usage: find_embedding_layer_with_path(module, module_names) and returns: None,  None, child_module,  str, found,  path