class_docstr: Create a function that splits data with K-Fold Cross-Validation resampling.
  
  .. code-block:: python
  
      # create a kfold cross validation splitter with 2 kfold
      kfold_cross_validation_split(0.20)
  
  
  :param k_fold: number of folds.
  :return:
docstr: Split data with K-Fold Cross-Validation splitting.
  
  :param data_inputs: data inputs
  :param k_fold: number of folds
  :return: a tuple of lists of folds of train_data, and of lists of validation_data, each of length "k_fold".
docstr_tok: ["Split","data","with","K-Fold","Cross-Validation","splitting",".",":","param","data_inputs",":","data","inputs",":","param","k_fold",":","number","of","folds",":","return",":","a","tuple","of","lists","of","folds","of","train_data",",","and","of","lists","of","validation_data",",","each","of","length","``","k_fold","''","."]
code: def _kfold_cv_split(
      self, dact_data: DACTData
  ) -> Tuple[FoldsList[DACTData], FoldsList[DACTData]]:
      """
      Split data with K-Fold Cross-Validation splitting.
  
      :param data_inputs: data inputs
      :param k_fold: number of folds
      :return: a tuple of lists of folds of train_data, and of lists of validation_data, each of length "k_fold".
      """
      if dact_data is None:
          return None
  
      train_splitted_data: List[DACTData] = []
      valid_splitted_data: List[DACTData] = []
  
      for fold_i in range(self._get_k_fold(dact_data)):
          (
              train_slice,
              valid_slice,
          ) = self._get_train_val_slices_at_fold_i(dact_data, fold_i)
  
          train_splitted_data.append(train_slice)
          valid_splitted_data.append(valid_slice)
  
      return train_splitted_data, valid_splitted_data
  
imports: import copy
  import math
  from abc import ABC, abstractmethod
  from typing import Any, List, Optional, Set, Tuple
  import numpy
  from neuraxle.base import ExecutionContext
  from neuraxle.data_container import DIT, EOT, IDT, DACTData
  from neuraxle.data_container import DataContainer
  from neuraxle.data_container import TrainDACT, ValidDACT
label_desc: Use image node_id 4 for calling the KFoldCrossValidationSplitter obj's underlying member method code with example usage: obj._kfold_cv_split(dact_data) and returns: train_splitted_data,  valid_splitted_data, None