class_docstr: The layer that calculates logical not for each
  element of the single input:
  
  - :math:`f(x) = x == 0 ? 1 : 0`
  
  :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 name: The layer name.
  :type name: str, default=None
  
  .. rubric:: Layer inputs:
  
  (1) a blob with integer data of any size
  
  .. rubric:: Layer outputs:
  
  (1) a blob with integer data of the same size with the result
code: def __init__(self, input_layer, name=None):
      if type(input_layer) is PythonWrapper.Not:
          super().__init__(input_layer)
          return
  
      layers, outputs = check_input_layers(input_layer, 1)
  
      internal = PythonWrapper.Not(
          str(name), layers[0], int(outputs[0])
      )
      super().__init__(internal)
  
file_path: neoml/NeoML/Python/neoml/Dnn/Logical.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 Not object from inherited base classes: Layer with example: obj = Not(input_layer, name)