def add_not_equal(self, name, input_names, output_name, alpha=0.0):
        """
        Add a not_equal layer to the model that performs the element-wise not
        equal (!=) operation. Broadcasting is supported.
        Refer to the ``NotEqualLayerParams`` message in the specification (NeuralNetwork.proto) for more details.

        Parameters
        ----------
        name: str
            The name of this layer.
        input_names: list of str
            The input blob names of this layer.
        output_name: str
            The output blob name of this layer.
        alpha: float, optional
            y = x1 != alpha, if only one input is provided, default: 0.

        See Also
        --------
        add_equal, add_greater_than, add_less_than
        """

        if isinstance(input_names, str):
            input_names = [input_names]
        spec_layer = self._add_generic_layer(name, input_names, [output_name])
        spec_layer.notEqual.MergeFromString(b"")
        if len(input_names) == 1:
            spec_layer.notEqual.alpha = alpha
        return spec_layer

        Add a not_equal layer to the model that performs the element-wise not
        equal (!=) operation. Broadcasting is supported.
        Refer to the ``NotEqualLayerParams`` message in the specification (NeuralNetwork.proto) for more details.

        Parameters
        ----------
        name: str
            The name of this layer.
        input_names: list of str
            The input blob names of this layer.
        output_name: str
            The output blob name of this layer.
        alpha: float, optional
            y = x1 != alpha, if only one input is provided, default: 0.

        See Also
        --------
        add_equal, add_greater_than, add_less_than
        
coremltools/models/neural_network/builder.py