class_docstr: The layer that extracts a subsequence 
  from each vector sequence of the set.
  
  :param input_layer: The input layer and the number of its output. If no number
      is specified, the first output will be connected.
  :type input_layer: object, tuple(object, int)
  :param start_pos: The first element of the subsequence. Counted from the end if negative.  
  :type start_pos: int
  :param length: The length of the subsequence. Reversed order if negative.
  :type length: int
  :param name: The layer name.
  :type name: str, default=None
  
  .. rubric:: Layer inputs:
  
  (1) a blob with a set of objects, numbered along the **BatchWidth** dimension.
  
  .. rubric:: Layer outputs:
  
  (1) a blob with the subsequence of objects.
      The dimensions:
  
      - **BatchWidth** is abs(length) or smaller if it doesn't fit 
        after starting at start_pos
      - the other dimensions are the same as for the input
class_docstr_tok: ["The","layer","that","extracts","a","subsequence","from","each","vector","sequence","of","the","set",".",":","param","input_layer",":","The","input","layer","and","the","number","of","its","output",".","If","no","number","is","specified",",","the","first","output","will","be","connected",".",":","type","input_layer",":","object",",","tuple","(","object",",","int",")",":","param","start_pos",":","The","first","element","of","the","subsequence",".","Counted","from","the","end","if","negative",".",":","type","start_pos",":","int",":","param","length",":","The","length","of","the","subsequence",".","Reversed","order","if","negative",".",":","type","length",":","int",":","param","name",":","The","layer","name",".",":","type","name",":","str",",","default=None","..","rubric",":",":","Layer","inputs",":","(","1",")","a","blob","with","a","set","of","objects",",","numbered","along","the","*","*","BatchWidth","*","*","dimension",".","..","rubric",":",":","Layer","outputs",":","(","1",")","a","blob","with","the","subsequence","of","objects",".","The","dimensions",":","-","*","*","BatchWidth","*","*","is","abs","(","length",")","or","smaller","if","it","does","n't","fit","after","starting","at","start_pos","-","the","other","dimensions","are","the","same","as","for","the","input"]
code: def __init__(self, input_layer, start_pos=0, length=1, name=None):
      if type(input_layer) is PythonWrapper.SubSequence:
          super().__init__(input_layer)
          return
  
      layers, outputs = check_input_layers(input_layer, 1)
  
      internal = PythonWrapper.SubSequence(
          str(name),
          layers[0],
          int(outputs[0]),
          int(start_pos),
          int(length),
          False,
      )
      super().__init__(internal)
  
file_path: neoml/NeoML/Python/neoml/Dnn/SubSequence.py
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 SubSequence object from inherited base classes: Layer with example: obj = SubSequence(input_layer, start_pos, length, name)