class_docstr: The layer that is looking for the most probable sequences 
  in the response of a connectionist temporal classification (CTC) network.
  
  :param input_layers: The input layers to be connected. 
      The integer in each tuple specifies the number of the output.
      If not set, the first output will be used.
  :type input_layers: object, (object, int) or list of them        
  :param blank: Sets the value for the blank label that will be used as space.
  :type blank: int
  :param blank_threshold: The probability threshold for blank labels when building
      a linear division graph (LDG).
  :type blank_threshold: float, [0..1]
  :param arc_threshold: The probability threshold for cutting off arcs when building
      a linear division graph (LDG).
  :type arc_threshold: float, [0..1]
  :param name: The layer name.
  :type name: str, default=None
  
  .. rubric:: Layer inputs:
  
  (1) the network response.
      The dimensions:
  
      - **BatchLength** is the maximum sequence length
      - **BatchWidth** is the number of sequences in the set
      - **ListSize** is 1
      - **Height** * **Width** * **Depth** * **Channels** is the number of classes
  
  (2) (optional): the network response sequences lengths as a blob
      with int data. If this input isn't connected, the response sequences
      are considered to be the first input's **BatchLength** long.
      The dimensions:
  
      - **BatchWidth** is the same as for the first input
      - the other dimensions are 1
  
  .. rubric:: Layer outputs:
  
  The layer has no output.
class_docstr_tok: ["The","layer","that","is","looking","for","the","most","probable","sequences","in","the","response","of","a","connectionist","temporal","classification","(","CTC",")","network",".",":","param","input_layers",":","The","input","layers","to","be","connected",".","The","integer","in","each","tuple","specifies","the","number","of","the","output",".","If","not","set",",","the","first","output","will","be","used",".",":","type","input_layers",":","object",",","(","object",",","int",")","or","list","of","them",":","param","blank",":","Sets","the","value","for","the","blank","label","that","will","be","used","as","space",".",":","type","blank",":","int",":","param","blank_threshold",":","The","probability","threshold","for","blank","labels","when","building","a","linear","division","graph","(","LDG",")",".",":","type","blank_threshold",":","float",",","[","0","..","1","]",":","param","arc_threshold",":","The","probability","threshold","for","cutting","off","arcs","when","building","a","linear","division","graph","(","LDG",")",".",":","type","arc_threshold",":","float",",","[","0","..","1","]",":","param","name",":","The","layer","name",".",":","type","name",":","str",",","default=None","..","rubric",":",":","Layer","inputs",":","(","1",")","the","network","response",".","The","dimensions",":","-","*","*","BatchLength","*","*","is","the","maximum","sequence","length","-","*","*","BatchWidth","*","*","is","the","number","of","sequences","in","the","set","-","*","*","ListSize","*","*","is","1","-","*","*","Height","*","*","*","*","*","Width","*","*","*","*","*","Depth","*","*","*","*","*","Channels","*","*","is","the","number","of","classes","(","2",")","(","optional",")",":","the","network","response","sequences","lengths","as","a","blob","with","int","data",".","If","this","input","is","n't","connected",",","the","response","sequences","are","considered","to","be","the","first","input","'s","*","*","BatchLength","*","*","long",".","The","dimensions",":","-","*","*","BatchWidth","*","*","is","the","same","as","for","the","first","input","-","the","other","dimensions","are","1","..","rubric",":",":","Layer","outputs",":","The","layer","has","no","output","."]
code: def __init__(
      self,
      input_layers,
      blank,
      blank_threshold,
      arc_threshold,
      name=None,
  ):
      if type(input_layers) is PythonWrapper.CtcDecoding:
          super().__init__(input_layers)
          return
  
      layers, outputs = check_input_layers(input_layers, (1, 2))
  
      internal = PythonWrapper.CtcDecoding(
          str(name),
          layers,
          outputs,
          int(blank),
          float(blank_threshold),
          float(arc_threshold),
      )
      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 CtcDecoding object from inherited base classes: Layer with example: obj = CtcDecoding(input_layers, blank, blank_threshold, arc_threshold, name)