code: def _functional_call(model, d, features):
      """
      Makes a call to `model.forward`, which is treated as a function of the parameters
      in `d`, a dict from parameter name to parameter, instead of as a function of
      `features`, the argument that is unpacked to `model.forward` (i.e.
      `model.forward(*features)`).  Depending on what version of PyTorch is available,
      we either use our own implementation, or directly use `torch.nn.utils.stateless`
      or `torch.func.functional_call`.  Put another way, this function mimics the latter
      two implementations, using our own when the PyTorch version is too old.
      """
      import torch
  
      version = _parse_version(torch.__version__)
      if version < (1, 12, 0):
          return _custom_functional_call(model, d, features)
      elif version >= (1, 12, 0) and version < (2, 0, 0):
          import torch.nn.utils.stateless
  
          return torch.nn.utils.stateless.functional_call(
              model, d, features
          )
      else:
          import torch.func
  
          return torch.func.functional_call(model, d, features)
  
imports: import warnings
  from functools import reduce
  from typing import Any, Callable, Iterable, List, NamedTuple, Optional, Tuple, TYPE_CHECKING, Union
  import torch
  import torch.nn
  from captum._utils.common import _get_module_from_name, _parse_version
  from captum._utils.gradient import _compute_jacobian_wrt_params, _compute_jacobian_wrt_params_with_sample_wise_trick
  from captum._utils.progress import progress
  from torch import Tensor
  from torch.nn import Module
  from torch.utils.data import DataLoader, Dataset
label_desc: Use image node_id 32 for calling a global function with example usage: _functional_call(model, d, features) and returns: _custom_functional_call, torch, torch