code: def get_input_tensors_task(
      model: LudwigModel,
      df: pd.DataFrame,
      run_config: ExplanationRunConfig,
  ) -> Tuple[List[Variable], ExplanationRunConfig]:
      model.model.unskip()
      model.model.to(get_torch_device())
      try:
          get_total_attribution_with_retry = (
              retry_with_halved_batch_size(run_config)(
                  get_input_tensors
              )
          )
          return (
              get_total_attribution_with_retry(model, df, run_config),
              run_config,
          )
      finally:
          model.model.cpu()
  
file_path: ludwig/ludwig/explain/captum_ray.py
imports: from collections import defaultdict
  from typing import Any, Dict, List, Optional, Tuple
  import numpy
  import pandas
  import ray
  from torch.autograd import Variable
  from tqdm import tqdm
  from ludwig.api import LudwigModel
  from ludwig.api_annotations import PublicAPI
  from ludwig.explain.captum import ExplanationRunConfig, get_baseline, get_input_tensors, get_total_attribution, IntegratedGradientsExplainer, retry_with_halved_batch_size
  from ludwig.explain.explanation import ExplanationsResult
  from ludwig.features.feature_utils import LudwigFeatureDict
  from ludwig.utils.torch_utils import get_torch_device
label_desc: Use image node_id 1 for calling a global function with example usage: get_input_tensors_task(model, df, run_config) and returns: get_total_attribution_with_retry,  run_config