class_docstr: generates splits of indices for a given length of a dataset to perform n-fold cross-validation.
  splits each fold into 3 subsets for training, validation and testing.
  This form of cross validation uses an inner loop test set, which is useful if test scores shall be reported on a
  statistically reliable amount of patients, despite limited size of a dataset.
  If hold out test set is provided and hence no inner loop test set needed, just add test_idxs to the training data in the dataloader.
  This creates straight-forward train-val splits.
  :returns names list: list of len n_splits. each element is a list of len 3 for train_ix, val_ix, test_ix.
class_docstr_tok: ["generates","splits","of","indices","for","a","given","length","of","a","dataset","to","perform","n-fold","cross-validation",".","splits","each","fold","into","3","subsets","for","training",",","validation","and","testing",".","This","form","of","cross","validation","uses","an","inner","loop","test","set",",","which","is","useful","if","test","scores","shall","be","reported","on","a","statistically","reliable","amount","of","patients",",","despite","limited","size","of","a","dataset",".","If","hold","out","test","set","is","provided","and","hence","no","inner","loop","test","set","needed",",","just","add","test_idxs","to","the","training","data","in","the","dataloader",".","This","creates","straight-forward","train-val","splits",".",":","returns","names","list",":","list","of","len","n_splits",".","each","element","is","a","list","of","len","3","for","train_ix",",","val_ix",",","test_ix","."]
code: def get_fold_names(self):
      names_list = []
      rgen = np.random.RandomState(self.myseed)
      cv_names = np.arange(self.len_data)
  
      rgen.shuffle(cv_names)
      self.l = len(cv_names)
      self.init_indices()
  
      for split in range(self.n_splits):
          train_names, val_names, test_names = (
              cv_names[self.tr_ix],
              cv_names[self.val_ix],
              cv_names[self.te_ix],
          )
          names_list.append(
              [train_names, val_names, test_names, self.fold]
          )
          self.new_fold()
          self.fold += 1
  
      return names_list
  
file_path: medicaldetectiontoolkit/utils/dataloader_utils.py
imports: import numpy
  import os
  from multiprocessing import Pool
label_desc: Use image node_id 4 for calling the fold_generator obj's underlying member method code with example usage: obj.get_fold_names() and returns: names_list