code: def __init__(self, args, kwargs):
      self.arg_types = [
          "t" if self._is_tensor_input(arg) else "s" for arg in args
      ]
      self.kwarg_types = {
          k: "t" if self._is_tensor_input(v) else "s"
          for k, v in kwargs.items()
      }
      self.tensor_args = [
          arg for arg in args if self._is_tensor_input(arg)
      ]
      self.nontensor_args = [
          arg for arg in args if not self._is_tensor_input(arg)
      ]
      self.tensor_kwargs = {
          k: v for k, v in kwargs.items() if self._is_tensor_input(v)
      }
      self.nontensor_kwargs = {
          k: v
          for k, v in kwargs.items()
          if not self._is_tensor_input(v)
      }
      self.all_tensors = [
          *self.tensor_args,
          *[v for k, v in self.tensor_kwargs.items()],
      ]
      self.kwarg_order = [k for k, v in kwargs.items()]
  
imports: from torch.jit.annotations import BroadcastingList2, BroadcastingList3
  import torch.nn.functional
  import torch
  import torch.cuda
  import torch.jit
  import torch.jit._logging
  import torch.jit.frontend
  from torch.testing._internal.common_nn import module_tests, new_module_tests
  from torch.testing._internal.common_utils import is_iterable_of_tensors, noncontiguous_like
  import collections
  from copy import deepcopy
  from typing import Any, Dict, List, Union
  import math
  from torch import inf
label_desc: Use image node_id 2 to create a new SplitInputs object  with example: obj = SplitInputs(args, kwargs)