code: def split_sample_list(samples: List[Any]):
      """
      Split a list of samples in train/val/test splits
      """
      random.shuffle(samples)
      num_samples = len(samples)
      val_start = int(round(num_samples * TRAIN_SPLIT_SIZE))
      val_length = int(round(num_samples * VALID_SPLIT_SIZE))
      val_end = val_start + val_length
      return {
          "train": samples[:val_start],
          "val": samples[val_start:val_end],
          "test": samples[val_end:],
          "trainval": samples[:val_end],
      }
  
file_path: vissl/extra_scripts/datasets/create_sun397_data_files.py
imports: import argparse
  import dataclasses
  import os
  import random
  from typing import Any, List
  import numpy
  from iopath.common.file_io import g_pathmgr
  from tqdm import tqdm
  from vissl.utils.download import download_and_extract_archive
label_desc: Use image node_id 3 for calling a global function with example usage: split_sample_list(samples) and returns: dict