class_docstr: The layer that finds maximums on the set of sequences,
  with the window taken over BatchLength axis.
  
  :param input_layers: The input layer and the number of its output. If no number
      is specified, the first output will be connected.
  :type input_layers: object, tuple(object, int)
  :param filter_len: The window size. Set to <= 0 if the maximum over the whole 
      sequence length should be found.   
  :type filter_len: int
  :param stride_len: The window stride. Meaningful only for filter_len > 0.   
  :type stride_len: int, > 0
  :param name: The layer name.
  :type name: str, default=None
  
  .. rubric:: Layer inputs:
  
  (1) the set of sequences, of dimensions:
  
      - **BatchLength** is the sequence length
      - **BatchWidth** * **ListSize** is the number of sequences in the set
      - **Height** * **Width** * **Depth** * **Channels** is the length of each vector
      
  .. rubric:: Layer outputs:
  
  (1) the pooling result.
      The dimensions:
  
      - **BatchLength** is:
  
          - 1 if filter_len is <= 0
          - (**BatchLength** - filter_len) / stride_len + 1 otherwise
      - the other dimensions are the same as for the input
class_docstr_tok: ["The","layer","that","finds","maximums","on","the","set","of","sequences",",","with","the","window","taken","over","BatchLength","axis",".",":","param","input_layers",":","The","input","layer","and","the","number","of","its","output",".","If","no","number","is","specified",",","the","first","output","will","be","connected",".",":","type","input_layers",":","object",",","tuple","(","object",",","int",")",":","param","filter_len",":","The","window","size",".","Set","to","<","=","0","if","the","maximum","over","the","whole","sequence","length","should","be","found",".",":","type","filter_len",":","int",":","param","stride_len",":","The","window","stride",".","Meaningful","only","for","filter_len",">","0.",":","type","stride_len",":","int",",",">","0",":","param","name",":","The","layer","name",".",":","type","name",":","str",",","default=None","..","rubric",":",":","Layer","inputs",":","(","1",")","the","set","of","sequences",",","of","dimensions",":","-","*","*","BatchLength","*","*","is","the","sequence","length","-","*","*","BatchWidth","*","*","*","*","*","ListSize","*","*","is","the","number","of","sequences","in","the","set","-","*","*","Height","*","*","*","*","*","Width","*","*","*","*","*","Depth","*","*","*","*","*","Channels","*","*","is","the","length","of","each","vector","..","rubric",":",":","Layer","outputs",":","(","1",")","the","pooling","result",".","The","dimensions",":","-","*","*","BatchLength","*","*","is",":","-","1","if","filter_len","is","<","=","0","-","(","*","*","BatchLength","*","*","-","filter_len",")","\/","stride_len","+","1","otherwise","-","the","other","dimensions","are","the","same","as","for","the","input"]
code: def __init__(self, input_layers, filter_len, stride_len, name=None):
      if type(input_layers) is PythonWrapper.MaxOverTimePooling:
          super().__init__(input_layers)
          return
  
      layers, outputs = check_input_layers(input_layers, 1)
  
      if int(stride_len) < 1:
          raise ValueError("The `stride_len` must be > 0.")
  
      internal = PythonWrapper.MaxOverTimePooling(
          str(name),
          layers[0],
          outputs[0],
          int(filter_len),
          int(stride_len),
      )
      super().__init__(internal)
  
imports: import neoml.PythonWrapper
  from .Dnn import Layer
  from neoml.Utils import check_input_layers
label_desc: Use image node_id 1 to create a new MaxOverTimePooling object from inherited base classes: Layer with example: obj = MaxOverTimePooling(input_layers, filter_len, stride_len, name)