code: def split_dataset(dataset_dir: str, output_dir: str, batch_size: int):
      train_file = os.path.join(dataset_dir, "train_data.bin")
      test_file = os.path.join(dataset_dir, "test_data.bin")
      val_file = os.path.join(dataset_dir, "validation_data.bin")
  
      target_train = os.path.join(output_dir, "train")
      target_test = os.path.join(output_dir, "test")
      target_val = os.path.join(output_dir, "validation")
  
      os.makedirs(output_dir, exist_ok=True)
      os.makedirs(target_train, exist_ok=True)
      os.makedirs(target_test, exist_ok=True)
      os.makedirs(target_val, exist_ok=True)
  
      split_binary_file(
          test_file,
          target_test,
          NUM_EMBEDDINGS_PER_FEATURE,
          batch_size,
      )
      split_binary_file(
          train_file,
          target_train,
          NUM_EMBEDDINGS_PER_FEATURE,
          batch_size,
      )
      split_binary_file(
          val_file, target_val, NUM_EMBEDDINGS_PER_FEATURE, batch_size
      )
  
file_path: torchrec/torchrec/datasets/scripts/nvt/split_binary_dataset.py
imports: import argparse
  import math
  import os
  import time
  from typing import Sequence
  import numpy
  from tqdm import tqdm
  from utils.criteo_constant import CAT_FEATURE_COUNT, DEFAULT_INT_NAMES, NUM_EMBEDDINGS_PER_FEATURE
label_desc: Use image node_id 2 for calling a global function with example usage: split_dataset(dataset_dir, output_dir, batch_size) without return types