class_docstr: An anchored walk forward cross validation works by performing a forward rolling split.
  
  All training splits start at the beginning of the time series, and finish time varies.
  
  For the validation split it, will start after a certain time delay (if padding is set)
  after their corresponding training split.
  
  Data is expected to be an is a square nd.array of shape [batch_size, total_time_steps, ...].
  It can be N dimensions, such as 3D or more, but the time series axis is currently limited to `axis=1`.
docstr: Create a anchored walk forward time series cross validation object.
  
  The size of the validation split is defined by `validation_window_size`.
  The difference in start position between two consecutive validation split is also equal to
  `validation_window_size`.
  
  :param minimum_training_size: size of the smallest training split.
  :param validation_window_size: size of each validation split and also the time step taken between each
      forward roll, by default None. If None : It takes the value `minimum_training_size`.
  :param padding_between_training_and_validation: the size of the padding between the end of the training split
      and the start of the validation split, by default 0.
  :param drop_remainder: drop the last split if the last validation split does not coincide
      with a full validation_window_size, by default False.
docstr_tok: ["Create","a","anchored","walk","forward","time","series","cross","validation","object",".","The","size","of","the","validation","split","is","defined","by","`","validation_window_size","`",".","The","difference","in","start","position","between","two","consecutive","validation","split","is","also","equal","to","`","validation_window_size","`",".",":","param","minimum_training_size",":","size","of","the","smallest","training","split",".",":","param","validation_window_size",":","size","of","each","validation","split","and","also","the","time","step","taken","between","each","forward","roll",",","by","default","None",".","If","None",":","It","takes","the","value","`","minimum_training_size","`",".",":","param","padding_between_training_and_validation",":","the","size","of","the","padding","between","the","end","of","the","training","split","and","the","start","of","the","validation","split",",","by","default","0.",":","param","drop_remainder",":","drop","the","last","split","if","the","last","validation","split","does","not","coincide","with","a","full","validation_window_size",",","by","default","False","."]
code: def __init__(
      self,
      minimum_training_size,
      validation_window_size=None,
      padding_between_training_and_validation=0,
      drop_remainder=False,
  ):
      """
      Create a anchored walk forward time series cross validation object.
  
      The size of the validation split is defined by `validation_window_size`.
      The difference in start position between two consecutive validation split is also equal to
      `validation_window_size`.
  
      :param minimum_training_size: size of the smallest training split.
      :param validation_window_size: size of each validation split and also the time step taken between each
          forward roll, by default None. If None : It takes the value `minimum_training_size`.
      :param padding_between_training_and_validation: the size of the padding between the end of the training split
          and the start of the validation split, by default 0.
      :param drop_remainder: drop the last split if the last validation split does not coincide
          with a full validation_window_size, by default False.
      """
      self.minimum_training_size = minimum_training_size
      # If validation_window_size is None, we give the same value as training_window_size.
      self.validation_window_size = (
          validation_window_size or self.minimum_training_size
      )
      self.padding_between_training_and_validation = (
          padding_between_training_and_validation
      )
      self.drop_remainder = drop_remainder
      self._validation_initial_start = (
          self.minimum_training_size
          + self.padding_between_training_and_validation
      )
  
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 1 to create a new AnchoredWalkForwardTimeSeriesCrossValidationSplitter object from inherited base classes: KFoldCrossValidationSplitter with example: obj = AnchoredWalkForwardTimeSeriesCrossValidationSplitter(minimum_training_size, validation_window_size, padding_between_training_and_validation, drop_remainder)