code: def _set_module_backend(
      original_dict,
      target,
      backend,
      invalid_dtypes=None,
      backend_str=None,
  ):
      invalid_dtypes = (
          backend.invalid_dtypes
          if invalid_dtypes is None
          else invalid_dtypes
      )
      backend_str = (
          backend.current_backend_str()
          if backend_str is None
          else backend_str
      )
      for k, v in original_dict.items():
          if k in ivy.GLOBAL_PROPS:
              continue
          compositional = k not in backend.__dict__
          if compositional:
              if k in invalid_dtypes and k in target.__dict__:
                  del target.__dict__[k]
                  continue
              backend.__dict__[k] = v
          target.__dict__[k] = _wrap_function(
              key=k,
              to_wrap=backend.__dict__[k],
              original=v,
              compositional=compositional,
          )
          if (
              isinstance(v, types.ModuleType)
              and "ivy.functional." in v.__name__
              and os.path.join("{}", "__init__.py").format(backend_str)
              not in v.__file__
          ):
              _set_module_backend(
                  v.__dict__,
                  target.__dict__[k],
                  backend.__dict__[k],
                  invalid_dtypes=invalid_dtypes,
                  backend_str=backend_str,
              )
  
imports: import os
  import copy
  import types
  import ivy
  import importlib
  import functools
  import numpy
  import gc
  from ivy.utils import _importlib, verbosity
  from ivy.func_wrapper import _wrap_function
  from ivy.utils.backend.sub_backend_handler import _clear_current_sub_backends, fn_name_from_version_specific_fn_name
  from ivy.utils.exceptions import _handle_inplace_mode
label_desc: Use image node_id 6 for calling a global function with example usage: _set_module_backend(original_dict, target, backend, invalid_dtypes, backend_str) without return types