code: def _train_test_split(
      x_list: Tensor, y_list: Tensor, test_split: float = 0.33
  ) -> Tuple[Tensor, Tensor, Tensor, Tensor]:
      # Shuffle
      z_list = list(zip(x_list, y_list))
      random.shuffle(z_list)
      # Split
      test_size = int(test_split * len(z_list))
      z_test, z_train = z_list[:test_size], z_list[test_size:]
      x_test, y_test = zip(*z_test)
      x_train, y_train = zip(*z_train)
      return (
          torch.stack(x_train),
          torch.stack(x_test),
          torch.stack(y_train),
          torch.stack(y_test),
      )
  
imports: import random
  import warnings
  from abc import ABC, abstractmethod
  from typing import Any, Dict, List, Tuple, Union
  import torch
  from captum._utils.models.linear_model import model
  from torch import Tensor
  from torch.utils.data import DataLoader, TensorDataset
label_desc: Use image node_id 1 for calling a global function with example usage: _train_test_split(x_list, y_list, test_split) and returns: torch,  torch,  torch,  torch